testing - 在 Dart 中具有功能的 Mockito

标签 testing dart mockito flutter flutter-test

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

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/

相关文章:

flutter - 如何在连接到api或使用StreamProvider <T> .value()获取数据时显示微光

flutter - 如何在Flutter中的Tabbarwiew中使Web View 可滚动

flutter - 如何修复行中间的 "right Overflowed by 39 Pixels error"?

java - 如何更改 mockito 实现的接口(interface)返回的 boolean 值?

django - 测试 REST 访问是否必要/好?

testing - 是否可以将值存储在另一个 Action 本地数据表中?

unit-testing - 只允许 Selenium 访问该页面

android - 使用 Mockito 和 Firebase 进行单元测试

java - 使用 Mockito 模拟日期对象

c++ - BOOST_CHECK 中的错误?