在Chai中,您可以执行以下操作:
expect({}).to.exist;
exist
不是函数调用,但这仍然适用于测试框架。相反的 ( expect({}).to.not.exist
) 导致测试失败,但同样exist
不是函数调用。
这些断言如何在不让我调用函数的情况下工作?事实上,如果我试图说expect({}).to.exist()
测试失败是因为exist
不是函数。
在Chai中,您可以执行以下操作:
expect({}).to.exist;
exist
不是函数调用,但这仍然适用于测试框架。相反的 ( expect({}).to.not.exist
) 导致测试失败,但同样exist
不是函数调用。
这些断言如何在不让我调用函数的情况下工作?事实上,如果我试图说expect({}).to.exist()
测试失败是因为exist
不是函数。
我想通了(或者至少,我想出了一个方法)。使用JavaScript 吸气剂:
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 中的断言就相当容易了。