Próbuję przetestować, że mój konstruktor rzuci błąd za pomocą klejnotu Teaspoon dla Rails, z ChaiJS jako mojej biblioteki asercji.ChaiJS oczekiwać konstruktora, aby rzucić błąd
Kiedy uruchomić następujący test:
it('does not create the seat if x < 0', function() {
var badConstructor = function() {
return new Seat({ radius: 10, x: -0.1, y: 0.2, seat_number: 20, table_number: 30});
};
expect(badConstructor).to.throw(Error, 'Invalid location');
});
uzyskać ten wynik:
Usterki:
1) Seat does not create the seat if x < 0
Failure/Error: undefined is not a constructor (evaluating 'expect(badConstructor).to.throw(Error(), 'Invalid location')')
Konstruktor rzuca błąd, ale myślę, że nie piszę test właściwie.
gdy próbuję działa expect(badConstructor())
następnie uzyskać wyjście:
Failures:
1) Seat does not create the seat if x < 0
Failure/Error: Invalid location
Czy ma to być 'oczekiwać (badConstructor())'? tj. musisz wywołać funkcję. – Andy
Po prostu próbowałem - bezskutecznie. Teraz otrzymuję kolejny błąd - dodałem go w OP. – ThomYorkkke
Wygląda na to, że działa poprawnie, ponieważ "nieprawidłowa lokalizacja" jest częścią komunikatu o błędzie. Musisz to wybrać w swoim teście lub dodać do funkcji funkcję "try/catch", aby zwrócić błąd, który możesz przetestować. – Andy