私はこの方法を試してい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
を に設定するとどうなるかを確認できます3
。