在Chai中,您可以执行以下操作:
expect({}).to.exist;
exist
不是函数调用,但这仍然适用于测试框架。相反的(expect({}).to.not.exist
)导致测试失败,但同样,exist
不是函数调用。
这些断言如何在不让我调用函数的情况下工作?事实上,如果我试图说expect({}).to.exist()
,则测试失败,因为exist
不是函数。
答案 0 :(得分:11)
我想通了(或者至少,我想出了一个方法)。使用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
时,将引发相应的错误。
从那时起,构建Chai中包含的断言相当容易。