uqbar-project / wollok-ts

TypeScript based Wollok language implementation
GNU General Public License v3.0
20 stars 14 forks source link

Un test que no envía un mensaje a assert no está rompiendo #272

Open fdodino opened 2 weeks ago

fdodino commented 2 weeks ago

En Wollok Xtext teníamos agregada la funcionalidad de que un test falle si al final de la ejecución no había enviado ningún mensaje a assert. Esto me sigue pareciendo piola porque hace que el CI falle y le llegue un mail al alumne.

Opiniones? @asanzo @PalumboN @ivojawer @lspigariol @npasserini

Reproducción

armar un archivo testExample.wtest como el que se forma de un wollok init y escribir

test "sin assert" {
    2 + 2
}

Lo ejecutás y no falla. Sí muestra el mensaje de warning (el validador está implementado)

Screenshot 2024-09-07 at 8 39 51 AM
PalumboN commented 2 weeks ago

No me acordaba que en Xtext el test fallaba si assert no recibía ningún mensaje 🤔

Ok 👍

fdodino commented 2 weeks ago

image

fetivamente!

asanzo commented 2 weeks ago

TL;DR: estoy de acuerdo, sigan sigan.

Yo veo 2 casos a considerar:

1) Me olvidé de hacer el assert o no sabía que tenía que hacerlo (en cuyo caso está bueno que falle). Pero en este caso quizás el mensaje podría decir algo así como "Todo test debe verificar algo" además de decir "no le mandaste un mensaje a assert", que es medio críptico per sé para quien está aprendiendo. Pero es un detalle.

2) Lo que quiero probar es que efectivamente no estalle, en cuyo caso sirve el assert.doesNotThrow y la discusión que tuvimos está en https://github.com/uqbar-project/wollok-language/issues/82 . Si vamos por este lado, el error al fallar por falta de mensaje al assert debería incluir algún hint de esto quizás?

Meh, en fin, me inclino por abordar el caso 1 creo.

Si además podemos detectar con un warning los assert.that(1=1) o los assert.that(true) quizás ese sea el lugar para poner la descripción de "probaste el doesNotThrowException?"

En cualquier caso avanzar en primer instancia por replicar el comportamiento de wollok xtext me parece bien

Les quiero.