assert.{equal,strictEqual} do not print compared objects when comparing falsy values and message has been set
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.9k
- Forks
- 359
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
This is the test module:
```
module.exports = {
'Falsy tests with messages': function(test) {
test.equal(1, undefined, "A message");
test.equal(1, null, "A message");
test.equal(1, false, "A message");
test.equal(1, 0, "A message");
test.equal(1, '', "A message");
test.done();
},
'Falsy tests without messages': function(test) {
test.equal(1, undefined);
test.equal(1, null);
test.equal(1, false);
test.equal(1, 0);
test.equal(1, '');
test.done();
}
};
```
And the output:
```
% nodeunit test.js |grep 'AssertionError\|Falsy'
✖ Falsy tests with messages
AssertionError: A message
AssertionError: A message
AssertionError: A message
AssertionError: A message
AssertionError: A message
✖ Falsy tests without messages
AssertionError: == 1
AssertionError: null == 1
AssertionError: false == 1
AssertionError: 0 == 1
AssertionError: "" == 1
```
The problem is in [utils.betterErrors, line 186](https://github.com/caolan/nodeunit/blob/master/lib/utils.js#L186). I think equal, strictEqual and friends should set a property indicating that they have indeed been passed expected and actual values instead of trying to guess.
BTW, undefined should probably print "undefined" or something like that. And it also is strange that, compared to equal, the expected and actual values order is reversed.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.