我在下面有一个看起来很奇怪的测试规范。
expect(function(){
expect(null).not.toEqualMoment(testContext.moment1);
}).toThrow();
由于我的自定义匹配器内部的以下检查引发了异常,内部期望失败了。
if(!moment.isMoment(actual)) {
throw new Error(_.string.sprintf('Actual: %s , is not a Moment object.', jasmine.pp(actual)));
}
我认为必须在这里抛出异常,而不仅仅是返回失败的结果,因为如果没有,expect(null).not.toEqualMoment(null) 将返回 true。(如果这对你有意义)。
那么,如果我因异常而使自定义匹配器失败,我该如何测试呢?