说我得到了一些基本断言如下:
expect(myObject.getValue()).to.equal(5);
在多个代码在其他地方运行后,myObject.getValue()
返回的值应为5
,因此我只需要更新此value
。
我的问题是,创建此类测试的代码是什么?
答案 0 :(得分:1)
Mocha有retrying tests的设施。您可以在测试中使用this.retries(number_of_tries)
。像这样:
it("something", function () {
this.retries(10);
expect(myObject.getValue()).to.equal(5);
});
如果要设置整组测试的重试次数,也可以在describe
块中使用它。请注意,如果您使用this.retries
,则它不会出现在箭头函数(() => ...
)中,因为箭头函数让this
保持其在箭头函数出现的范围内的值。您必须使用完整功能(function () ...
)。
答案 1 :(得分:0)
要获得更高的重试精度,请使用retry-assert库:
const activeUser = await retry()
.fn(() => getUser(id))
.until(user => expect(user).toHaveProperty('active', true))
在编写更高级别的功能测试时(例如,在测试具有异步状态更改的API时),重试整个测试的粒度太粗糙了,而CucumberJS则不行。重试断言可与任何测试运行程序一起使用,并且当您的重试断言失败太多次时,它将给出有意义的错误消息。
免责声明:我是retry-assert的作者。