https://github.com/pivotal/jasmine/wiki/Matchers de belgeleri aşağıdakileri içerir: this question tartışıldığı gibiJasmine'in toThrow eşleyicisi, anonim bir işleve sarılacak argümanı gerektirir mi?
expect(function(){fn();}).toThrow(e);
, aşağıdakileri yapar değil çalışma biz oldukça fn()
expect(fn()).toThrow(e);
çağrı sonucu daha
expect
bir işlev nesnesini geçmek istediğiniz için
Soru 1: Aşağıdakiler çalışıyor mu?
expect(fn).toThrow(e);
Soru 2: Ben bir yönteme doIt
içeren bir nesne thing
tanımladığınız, aşağıdaki çalışır?
expect(thing.doIt).toThrow(e);
(2a: eğer öyleyse, doIt
yönteme argüman geçmemize için bir yol var mı?)
Ampirik cevap evet gibi görünüyor ama oldukça yeterli js kapsam belirleme benim anlayış güvenmiyorum emin olmak.
Teşekkürler!
try {
this.actual();
} catch (e) {
exception = e;
}
if (exception) {
result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
}
Bu toThrow
yöntemin en önemli parçasıdır:
Olası yinelenen: http://stackoverflow.com/questions/4144686/jasmine-how-to-write-a-test-which-expects-an-error-to-be-thrown – Petrov