Использование ленты, как я могу написать собственный метод утверждения для использования вместо t.equal()? Или есть метод утверждения теста, который может проверять подстроку так, чтобы вся строка, которую я тестирую, не нужно сравнивать дословно, используя t.deepEqual()?Как написать пользовательское утверждение для тестирования узла или javascript с лентой или проверить подстроку, а не t.deepEquals()?
var test = require("tape")
test('messages contain key words', function (t) {
// this is what I'm using:
t.equal(MyEncode(Fruit).indexOf('eat more') > -1,true,'should contain "eat more"')
// this is what I want:
t.contains(myEncode(Fruit),'eat more','should contain "eat more"')
t.end()
})
Когда я испытываю myEncode, я могу видеть, что строка не содержит подстроку, но я не могу просмотреть фактическое значение, поскольку он оценивает только как ложное, который не является информативным:
not ok 1 should contain "eat more"
---
operator: equal
expected: true
actual: false
at: checkCmd (/test.js:63:11)
...
Из чтения тестового выхода выше, я не знаю, был ли мой тест слишком строгим, или выход был фактически неправильным. Вместо этого, я хотел бы видеть фактическое значение, возвращенное myEncode для ускорения локализации проблемы:
not ok 2 should contain "eat more"
---
operator: contains
expected: "eat more"
actual: "Apples are allowed to be eaten on weekdays and weekends"
at: checkCmd (/test.js:66:11)
...
Я установил [extend-tape] (https://www.npmjs.com/package/extend-tape), но оказывается, что для него требуется функция 'import', которая еще не поддерживается V8, поэтому 'импортировать ленту из« ленты »; import addAssertions from 'extend-tape'; 'не работает. – user6641586