在
Chai,你可以做如下的东西:
expect({}).to.exist;
存在不是函数调用,但是这仍然在测试框架中.相反(expect({}).to.not.exist)会导致测试失败,但是再次存在并不是一个函数调用.
这些断言如何工作,而不让我调用函数?事实上,如果我尝试说expect({}).to.exist(),测试失败,因为存在不是一个函数.
解决方法
我想出来了(至少我想出了一个方法).使用
JavaScript getters:
var throws = { get a() { throw new Error('a'); },get b() { throw new Error('b'); },get c() { throw new Error('c'); } };
当做throws.a,throws.b或throws.c时,会抛出适当的错误.
从那时起,构建柴内容中的断言是相当容易的.