12

Chai中,您可以执行以下操作:

expect({}).to.exist;

exist不是函数调用,但这仍然适用于测试框架。相反的 ( expect({}).to.not.exist) 导致测试失败,但同样exist不是函数调用。

这些断言如何在不让我调用函数的情况下工作?事实上,如果我试图说expect({}).to.exist()测试失败是因为exist不是函数。

4

1 回答 1

11

我想通了(或者至少,我想出了一个方法)。使用JavaScript 吸气剂

var throws = {
  get a() {
    throw new Error('a');
  },
  get b() {
    throw new Error('b');
  },
  get c() {
    throw new Error('c');
  }
};

执行throws.a,throws.bthrows.c时,将抛出相应的错误。

从那时起,构建包含在 Chai 中的断言就相当容易了。

于 2013-07-18T03:06:44.973 回答