2015-09-04 7 views
5

Wie mache ich einen or Test mit chai.should zu tun?, wie ein „oder“ in chai sollte

z.B. so etwas wie

total.should.equal(4).or.equal(5) 

oder

total.should.equal.any(4,5) 

Was ist die richtige Syntax? Ich konnte nichts in der Dokumentation

Antwort

8

Anzeigen der Chai expect/should documentation finden, gibt es mehrere Möglichkeiten, diesen Test zu tun.

Beachten Sie, dass Sie mit "und" ketten können, aber anscheinend nicht "oder" - wünschen, dass sie diese Funktionalität haben.

  1. prüfen, ob ein Objekt eine Wahrheit Test bestanden:

.satisfy (Methode)

@param{ Function }matcher 
@param{ String }message_optional_ 

Asserts that the target passes a given truth test. 

Beispiel:

expect(1).to.satisfy(function(num) { return num > 0; }); 

In Ihrem Fall zu testen ein „oder“ Zustand:

yourVariable.should.satisfy(function (num) { 
    if ((num === 4) || (num === 5)) { 
     return true; 
    } else { 
     return false; 
    } 
}); 
  1. prüfen, ob eine Zahl innerhalb eines Bereichs ist:

.within (Start, Ziel)

@param{ Number }startlowerbound inclusive 
@param{ Number }finishupperbound inclusive 
@param{ String }message_optional_ 

Asserts that the target is within a range. 

Beispiel:

+2

das würde funktionieren - wir könnten auch etwas tun wie '(num == = 4 || num === 5) .should.be.true – MonkeyBonkey

Verwandte Themen