如何测试调用模拟函数?
我在Mocking with Dart - How to test that a function passed as a parameter was called?上找到了这个例子并尝试扩展它以检查函数是否被调用。
library test2;
import "package:unittest/unittest.dart";
import "package:mock/mock.dart";
class MockFunction extends Mock {
call(int a, int b) => a + b;
}
void main() {
test("aa", () {
var mockf = new MockFunction();
expect(mockf(1, 2), 3);
mockf.getLogs(callsTo(1, 2)).verify(happenedOnce);
});
}
似乎 mockf.getLogs()结构是空的......
答案 0 :(得分:1)
您必须模拟方法并在日志中指定其名称。这是工作代码:
library test2;
import "package:unittest/unittest.dart";
import "package:mock/mock.dart";
class MockFunction extends Mock {
MockFunction(){
when(callsTo('call')).alwaysCall(this.foo);
}
foo(int a, int b) {
return a + b;
}
}
void main() {
test("aa", () {
var mockf = new MockFunction();
expect(mockf(1, 2), 3);
mockf.calls('call', 1, 2).verify(happenedOnce);
});
}
修改强> 回答类似的问题:Dart How to mock a procedure