Verwenden von Band, wie kann ich eine benutzerdefinierte Assertion-Methode anstelle von schreiben t.equal()? Oder gibt es eine Test-Assertion-Methode, die nach einer Teilzeichenfolge suchen kann, so dass die gesamte Zeichenfolge, die ich testen möchte, nicht wörtlich mit t.deepEqual() verglichen werden muss?Wie schreibe ich eine benutzerdefinierte Zusicherung für das Testen von Knoten oder Javascript mit Band, oder prüfen Sie auf Teilstring statt 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()
})
Wenn ich myEncode testen, kann ich sehen, dass die Zeichenfolge nicht den Teil enthalten, aber ich kann den tatsächlichen Wert nicht anzeigen, da sie nur als falsch auswertet, die nicht informativ:
not ok 1 should contain "eat more"
---
operator: equal
expected: true
actual: false
at: checkCmd (/test.js:63:11)
...
Nach dem Lesen der obigen Testausgabe weiß ich nicht, ob mein Test zu restriktiv war oder ob die Ausgabe tatsächlich falsch war. Stattdessen würde Ich mag den tatsächlichen Wert von myEncode zurück, um zu sehen zu beschleunigen Lokalisieren des Problems:
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)
...
Ich habe [extend-tape] installiert (https://www.npmjs.com/package/extend-tape), aber es stellt sich heraus, dass es die "Import" -Funktion erfordert, die noch nicht von V8 unterstützt wird 'Band von 'Band' importieren; import addAssertions von 'extend-tape'; 'hat nicht funktioniert. – user6641586