Показать ожидаемые и фактические значения для ошибок подтверждения - PullRequest
0 голосов
/ 17 января 2019

При написании утверждений для моих тестов сбои подтверждений не дают достаточно информации без необходимости открывать IDE и начинать отладку.

Например, у меня есть некоторый код, который использует библиотеку 'assert':

import * as assert from 'assert'

// some code

assert(someObject.getValue() === 0)

Я просто получаю

       AssertionError [ERR_ASSERTION]: false == true
           + expected - actual

           -false
           +true

Это сообщение об ошибке на самом деле не имеет смысла. В качестве обходного пути я добавил его в сообщении в утверждении:

assert(someObject.getValue() === 0, 
       '\nActual: ' + someObject.getValue() + 
       '\nExpected: ' + 0)

Есть ли лучший, более чистый способ просто показать ожидаемые и фактические значения, не перекрывая сообщение при каждом утверждении? Я также попытался создать оболочку assert, но не смог извлечь фактические и ожидаемые значения из выражения.

РЕДАКТИРОВАТЬ: assert.strictEqual решает эту проблему только для равенства. Но как только включается любой другой оператор, возникает та же проблема (например, assert(someObject.getValue() > 0)

Любой совет будет оценен.

Спасибо!

1 Ответ

0 голосов
/ 17 января 2019

Вы можете использовать assert.strictEqual (фактическое, ожидаемое [, сообщение]) для получения фактических / ожидаемых сообщений об ошибках без необходимости использования третьего аргумента сообщения:

assert.strictEqual(someObject.getValue(), 0)

Выполучит сообщение об ошибке, например:

// AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
//
// 1 !== 0

Надеюсь, это поможет!

...