1

テープを使用して、 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)
...
4

1 に答える 1