我在尝试这种方法expectAsync2
,所以出现了这个问题:为什么异步测试通过了,但是显示了一些错误消息?
但似乎我没有正确使用它。有什么好的例子expectAsync2
吗?
我在尝试这种方法expectAsync2
,所以出现了这个问题:为什么异步测试通过了,但是显示了一些错误消息?
但似乎我没有正确使用它。有什么好的例子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));
});
});
}
你可以检查如果你设置count
和max
to会发生什么3
。
您可以查看文章Unit Testing with Dart的异步测试部分。