gpt4 book ai didi

testing - 在 Dart 中具有功能的 Mockito

转载 作者:IT王子 更新时间:2023-10-29 06:41:47 25 4
gpt4 key购买 nike

我有一个我想模拟的方法,但是当我试图验证对该方法的调用时。我收到一条错误消息:

Used on a non-mockito object

这是简化的代码:

test('test',() {
MockReducer reducer = new MockReducer();
verify(reducer).called(0);
});

class MockReducer extends Mock {
call(state, action) => state;
}

为什么我不能做这样的事情?

最佳答案

我认为你在这里遇到了三个问题:

  1. Mockito 仅适用于类,不适用于函数(参见 https://github.com/dart-lang/mockito/issues/62 )。您有一些选择:创建函数的测试实现,或者对于 redux.dart,您可以实现 ReducerClass(充当 Reducer 通过实现 call 实现功能)。
  2. 您需要验证被调用的方法,而不是整个 Mock 类。
  3. 您必须使用 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));
});
}

关于testing - 在 Dart 中具有功能的 Mockito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47714342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com