Dou*_*oug 7 javascript error-handling assert node.js webdriver-io
我迷失在 Node 文档中,并且很难弄清楚如何为所有断言语句创建自定义(或修改现有)错误处理,而不必在每个断言中包含单独的消息。
const assert = require('assert');
describe('Test 1', function(){
describe('Checks State', function(){
it('will fail', function(){
assert.strictEqual(true, false);
});
});
});
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,之前的代码只会生成类似以下内容的内容:
1) "Test 1 Checks State will fail"
true === false
Run Code Online (Sandbox Code Playgroud)
browser.sessionId我正在使用 WebDriverIO 运行,我的目标是在错误消息中包含,而不必在每个测试中手动填写第三个(消息)参数。
assert.strictEqual(true, false, browser.sessionId);
Run Code Online (Sandbox Code Playgroud)
如果我能生成如下错误消息,那就太理想了:
1) "Test 1 Checks State will fail"
abc012-efg345-hij678-klm901
true !== false
Run Code Online (Sandbox Code Playgroud)
我很抱歉,我知道我应该包括“到目前为止我所做的事情”——但到目前为止我所做的一切都没有产生任何影响。再次,我迷失在节点文档中:)
你不能,除非篡改第 3方库assert
在幕后,使用一个fail函数,该函数在上下文中是私有的assert,并且您无法告诉assert使用自定义fail函数。
这是在幕后使用的函数:
function fail(actual, expected, message, operator, stackStartFunction) {
throw new assert.AssertionError({
message: message,
actual: actual,
expected: expected,
operator: operator,
stackStartFunction: stackStartFunction
});
}
Run Code Online (Sandbox Code Playgroud)
因此,您有三个选择:
(推荐) 在 github 上分叉该库。实现一些观察者喜欢onFail或允许它可扩展并创建拉取请求。
(不推荐)自己覆盖文件fail中的函数node_modules\assert\assert.js,这样除了触发通常的功能之外,它还可以执行您想要的操作。
虽然速度很快,但这将永远导致依赖关系破裂。
寻找其他断言库(如果有任何适合您的需求)
| 归档时间: |
|
| 查看次数: |
2695 次 |
| 最近记录: |