gpt4 book ai didi

unit-testing - 编写Dart单元测试时如何正确使用 `expectAsync2`?

转载 作者:行者123 更新时间:2023-12-03 03:03:01 24 4
gpt4 key购买 nike

我正在尝试此方法expectAsync2,所以有一个问题:Why the async test passed, but there are some error messages displayed?

但是似乎我没有正确使用它。有没有expectAsync2的好例子?

最佳答案

在所引用的问题中,expectAsync仅用于保护异步调用,以使测试不会在new Timer(...)调用完成之前结束。

您还可以添加提供方法必须多长时间(最小/最大)才能满足测试要求。
如果您经过测试的功能调用的方法具有多个参数,则可以使用`expectAsync2)

您提到的问题中的错误是,您对expectAsyncX的调用也被延迟了。
必须在调用异步功能以注册必须调用的方法之前对expectAsyncX进行调用。

library x;

import 'dart:async';
import 'package:unittest/unittest.dart';

class SubjectUnderTest {
int i = 0;
doSomething(x, y) {
i++;
print('$x, $y');
}
}

void main(List<String> args) {

test('async test, check a function with 2 parameters', () {
var sut = new SubjectUnderTest();
var fun = expectAsync2(sut.doSomething, count: 2, max: 2, id: 'check doSomething');

new Timer(new Duration(milliseconds:200), () {
fun(1,2);
expect(sut.i, greaterThan(0));
});

new Timer(new Duration(milliseconds:100), () {
fun(3,4);
expect(sut.i, greaterThan(0));
});

});
}

如果将 countmax设置为 3,则可以检查会发生什么。

关于unit-testing - 编写Dart单元测试时如何正确使用 `expectAsync2`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com