问题标签 [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.
cucumber - serenity-js / cucumber / chai Promise AssertionError 需要一些帮助
我失去了它,我觉得我做对了但无法弄清楚为什么这个简单的测试失败了
我有一个feature
像这样的文件
我有一个definition
像这样的文件
我有一个pageObject
像这样的文件
这是我的课
当我在课堂上通过 webstorm 进行调试时,ViewAllAccountNames
我得到了
然后当我到达我的 See.if 函数时,我得到了
所以我的困境是这样的:我认为这源于我的 See.if 函数没有以正确的方式设置?
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 毫秒然后通过。
问题:
如何正确测试异步函数是否引发异常?
javascript - Electron,Spectron:如何在单独的 javascript 文件中编写测试用例
我正在测试电子应用程序使用这些技术,Spectron,Chai,chai 正如承诺的那样我想将我的测试用例写在单独的文件中,除了所有在一个文件中。
这是我尝试过的,
只是我想从测试初始化文件中将案例 1 和案例 2 写入单独的文件。
promise - 使用 Promise 是一个更好的解决方案,而不是使用超时进行 API 测试 - mocha
使用Promise是更好的解决方案,而不是使用 mocha/chai 进行 API 测试超时?对于很多测试,我在下面遇到这样的错误,并希望防止这些错误。Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
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'"));
消除警告的正确方法是什么?奖励:使测试通过。
javascript - Sinon,使用 Promise.reject() 到 stub.rejects() 观察不同的行为
我在运行测试(在节点中)时遇到问题,
我正在模拟一个被拒绝的承诺,我的代码应该重试(如果可能相关,请使用promise-retry )。
当我使用模拟被拒绝的承诺时stub.returns(Promise.reject(error)
我收到了一个未捕获的错误警告(对于我的dummyErrors
),即使我在调用我的函数时发现了错误......
-注意,这些未捕获的错误仅发生在单元测试中,而不是实际调用中。
我发现通过更改使用stub.rejects()
语法:
我不再收到未捕获的错误警告。
我的问题解决了,但是我想更好地理解为什么,我查看了 sinon 源代码,看起来实现.rejects
没有什么不同
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 值)?
有没有任何重构的解决方案?
如果不是最好的解决方案是什么?
专家,提前感谢您的宝贵帮助
javascript - 有没有办法将定位器“by”作为量角器上的字符串传递?
我试图避免使用 switch-case 来验证定位器,然后创建一个元素。
这就是我的代码的样子:
它接收一个像这样的 json 结构作为参数:
我正在寻找类似的东西:
有谁知道是否有办法避免使用开关盒?
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)
angular - TypeScript 和 chai-as-promsied:最终是无效属性
我正在尝试使用 TypScript 编写 Cucumber 测试,如下所示:
然而,量角器抱怨:
错误:无效的 Chai 属性:最终
我怎样才能导入这个?我试过了:
但这不起作用。我怎样才能做到这一点?我也尝试Then
使用 重写调用await
,但编译器抱怨您不能将回调与异步函数混合使用。啊!