テープを使用して、 t.equal()の代わりに使用するカスタム アサーション メソッドを作成するにはどうすればよいですか? または、テストしている文字列全体をt.deepEqual()を使用して逐語的に比較する必要がないように、部分文字列をチェックできるテスト アサーション メソッドはありますか?
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 をテストすると、文字列に部分文字列が含まれていないことがわかりますが、実際の値はfalseとしてのみ評価され、情報が得られないため、表示できません。
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)
...