问题标签 [chai-as-promised]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

cucumber - serenity-js / cucumber / chai Promise AssertionError 需要一些帮助

我失去了它,我觉得我做对了但无法弄清楚为什么这个简单的测试失败了

我有一个feature像这样的文件

我有一个definition像这样的文件

我有一个pageObject像这样的文件

这是我的课

当我在课堂上通过 webstorm 进行调试时,ViewAllAccountNames我得到了

然后当我到达我的 See.if 函数时,我得到了

所以我的困境是这样的:我认为这源于我的 See.if 函数没有以正确的方式设置?

0 投票
3 回答
6943 浏览

typescript - 测试异步函数以使用 mocha 抛出

我有一个运行 2000 毫秒的异步函数,然后它会抛出异常。我正在尝试用 Mocha / chai 准确地测试这种行为,但显然我做错了。

这就是我尝试过的:

第一的:

这将测试标记为通过(52 毫秒运行时间),但在 2 秒后抛出异常。所以显然它根本没有等待该功能的承诺。

第二:

测试失败:应该在预定义的超时后拒绝预定的消息:AssertionError:预期 [Function] 在 Context.mocha_1.it (test\integration\rpc-communication.spec.ts:75:16) 处抛出错误

预期的行为是测试通过,因为 2000 毫秒后抛出异常,这是在给定的测试用例超时 4000 毫秒内。

附加信息:

这会奏效。承诺因错误而被拒绝(我也可以将其更改为使用字符串拒绝)。这应该证明 dispatchMessage() 正在按预期工作。测试用例需要 2002 毫秒然后通过。

问题:

如何正确测试异步函数是否引发异常?

0 投票
1 回答
625 浏览

javascript - Electron,Spectron:如何在单独的 javascript 文件中编写测试用例

我正在测试电子应用程序使用这些技术,Spectron,Chai,chai 正如承诺的那样我想将我的测试用例写在单独的文件中,除了所有在一个文件中。

这是我尝试过的,

只是我想从测试初始化​​文件中将案例 1 和案例 2 写入单独的文件。

0 投票
1 回答
26 浏览

promise - 使用 Promise 是一个更好的解决方案,而不是使用超时进行 API 测试 - mocha

使用Promise是更好的解决方案,而不是使用 mocha/chai 进行 API 测试超时?对于很多测试,我在下面遇到这样的错误,并希望防止这些错误。Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.

0 投票
1 回答
473 浏览

node.js - Sinon Stub 给出了意外的 UnhandledPromiseRejectionWarning

我有这样的功能:

像这样的测试:

我有两个问题。首先,该sandbox.stub行给出了以下警告,我对此感到困惑,因为我要求 Promise 被拒绝!

UnhandledPromiseRejectionWarning: Error: ER_PROCACCESS_DENIED_ERROR: execute command denied to user 'dchambers'@'%' for routine 'uk_txtloan.connection_ids'

其次,测试没有通过:

AssertionError: expected [Function] to throw an error.

我主要想知道警告。我尝试了以下语法,它们给出了相同的错误:

sandbox.stub(sqlFileReader, 'read').throws(new Error("ER_PROCACCESS_DENIED_ERROR: execute command denied to user 'dchambers'@'%' for routine 'uk_txtloan.connection_ids'"));

sandbox.stub(sqlFileReader, 'read').resolves(Promise.reject(new Error("ER_PROCACCESS_DENIED_ERROR: execute command denied to user 'dchambers'@'%' for routine 'uk_txtloan.connection_ids'")));

sandbox.stub(sqlFileReader, 'read').rejects(new Error("ER_PROCACCESS_DENIED_ERROR: execute command denied to user 'dchambers'@'%' for routine 'uk_txtloan.connection_ids'"));

消除警告的正确方法是什么?奖励:使测试通过。

0 投票
1 回答
1585 浏览

javascript - Sinon,使用 Promise.reject() 到 stub.rejects() 观察不同的行为

我在运行测试(在节点中)时遇到问题,

我正在模拟一个被拒绝的承诺,我的代码应该重试(如果可能相关,请使用promise-retry )。

当我使用模拟被拒绝的承诺时stub.returns(Promise.reject(error)

我收到了一个未捕获的错误警告(对于我的dummyErrors),即使我在调用我的函数时发现了错误......

-注意,这些未捕获的错误仅发生在单元测试中,而不是实际调用中。

我发现通过更改使用stub.rejects()语法:

我不再收到未捕获的错误警告。

我的问题解决了,但是我想更好地理解为什么,我查看了 sinon 源代码,看起来实现.rejects没有什么不同

0 投票
3 回答
311 浏览

node.js - nodejs/mocha/chai as promise:预期异步函数中使用的变量在外部初始化

我是 mocha/chai 的新手,我花了 2 天时间试图解决以下问题,但没有成功(请注意,下面的代码只是为了展示这个概念,它不是真正的代码)。

我有一个名为“api.js”的 JS 文件,其中通过 dotenv 框架在文件顶部初始化了一些变量,例如 SERVER_URL。

api.js:

现在我得到了“test.js”文件,其中:

测试.js:

问题是 SERVER_URL 在测试期间未定义,我无法修改 api.js(因为我不是所有者),只能修改 test.js。

如何在正确设置 SERVER_URL 变量的情况下运行测试(从 api.js 处理.env.SERVER_URL 值)?

有没有任何重构的解决方案?

如果不是最好的解决方案是什么?

专家,提前感谢您的宝贵帮助

0 投票
1 回答
81 浏览

javascript - 有没有办法将定位器“by”作为量角器上的字符串传递?

我试图避免使用 switch-case 来验证定位器,然后创建一个元素。

这就是我的代码的样子:

它接收一个像这样的 json 结构作为参数:

我正在寻找类似的东西:

有谁知道是否有办法避免使用开关盒?

0 投票
1 回答
1142 浏览

javascript - 使用 mocha 和 chaiAsPromised 测试异步函数时的断言错误

所以我试图测试我的异步函数在我存根s3GetObject = Promise.promisify(s3.getObject.bind(s3))被拒绝时会引发错误,blah但是我得到我的函数不是异步的并且它不会引发错误。

以下是我的main.js文件tests.js

测试:

我得到的错误是:1)主要

getFileFromS3 应该是一个函数:AssertionError: expected [Function: getS3File] to be an asyncfunction at Context.it (test\unit\main.spec.js:28:27)

2) 主要

getFileFromS3 with error should error with blah: AssertionError: expected [Function: getS3File] to throw an error

UnhandledPromiseRejectionWarning:错误:等等 UnhandledPromiseRejectionWarning:未处理的承诺拒绝。

此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未处理的承诺.catch(). (rejection id: 228)

0 投票
1 回答
3601 浏览

angular - TypeScript 和 chai-as-promsied:最终是无效属性

我正在尝试使用 TypScript 编写 Cucumber 测试,如下所示:

然而,量角器抱怨:

错误:无效的 Chai 属性:最终

我怎样才能导入这个?我试过了:

但这不起作用。我怎样才能做到这一点?我也尝试Then使用 重写调用await,但编译器抱怨您不能将回调与异步函数混合使用。啊!