我如何去模拟一个过程(与函数相反,请参见here https://stackoverflow.com/questions/23925384/dart-mocking-a-function)
例如,给定以下 typedef 和过程,
typedef int Adder(int a, int b);
int useAdder(Adder adder) {
return adder(1, 2);
}
如何编写一个模拟来测试 userAdder 过程是否调用了模拟函数?
这是我的尝试,但失败并显示以下消息测试失败:捕获空对象没有方法“调用”。
class MyMock extends Mock {
MyMock(){
when(callsTo('call')).alwaysCall(this.foo);
}
int foo(int a, int b) => a+b;
}
void main() {
test("bb", () {
var mockf = new MyMock();
expect(useAdder( mockf.call), 3);
mockf.getLogs(callsTo('call', 1, 2)).verify(happenedOnce);
});
}
如果我改变
expect(useAdder( mockf.call), 3);
to
expect(useAdder( mockf.foo), 3);
方法调用没有出现在日志中