4

我不知道这是否可能。mocha.opts我知道如果我们只使用 should.js 库,我们可以在文件中执行以下操作

--require should

但是由于chai是父模块并且assert是子模块chai,我如何在mocha.opts文件中要求它?

还是我错过了一些非常基本的东西?

4

2 回答 2

6

AFAIK chai 和 mocha 以这种方式不兼容。它只适用于修改内置对象的原型,有些人认为这对于这个特定的用例是可以接受的,但通常它被认为是一种应该避免的不好的做法shouldshould

您可以做的是编写自己的小包装模块来执行此操作:

global.assert = require('chai').assert;

然后mocha.opts你可以做--require global-chai-assert,你的测试将可以访问 chai 的assert全局功能。我个人认为这是一种反模式,但如果你喜欢它,我会这样做。

于 2014-07-24T02:38:10.997 回答
0

从 chai v4.0.0 开始,您可以像这样注册 assert/expect/should 全局变量:

require('chai/register-assert');  // Using Assert style
require('chai/register-expect');  // Using Expect style
require('chai/register-should');  // Using Should style

所以你可以将它添加到你的 mocha.opts 中:

--require chai/register-should

chai 的 repo README中有一些使用示例。

于 2019-10-15T14:48:47.573 回答