Mar*_*łek 5 testing mockito dart flutter flutter-test
我有一个我想模拟的方法,但是当我尝试验证此方法的调用时。我收到一条错误消息:
Used on a non-mockito object
Run Code Online (Sandbox Code Playgroud)
这是简化的代码:
test('test',() {
MockReducer reducer = new MockReducer();
verify(reducer).called(0);
});
class MockReducer extends Mock {
call(state, action) => state;
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能做这样的事情?
我认为你在这里有三个问题:
redux.dart,您可以实现ReducerClass(Reducer通过实现充当函数call)。verifyNever代替verify(X).called(0)。工作示例:
class MockReducer extends Mock implements ReducerClass {}
main() {
test('should be able to mock a reducer', () {
final reducer = new MockReducer();
verifyNever(reducer.call(any, any));
});
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您只想创建一个模拟函数以用作小部件测试环境上的 onTap,则可以使用mockito 执行类似的操作:
abstract class MyFunction {
void call();
}
class MyFunctionMock extends Mock implements MyFunction {}
Run Code Online (Sandbox Code Playgroud)
测试:
void main() {
final mock = MyFunctionMock();
...
// This is inside the the testWidgets callback
await tester.pumpWidget(
widgetToBeTested(
item: registeredListItem,
onTap: mock,
),
);
//Logic to tap the widgetToBeTested
verify(mock()).called(1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3720 次 |
| 最近记录: |