小编Gus*_*tik的帖子

如何验证调用或不调用方法

class MockView extends Mock implements ContactListViewContract {

  @override
  void onLoadContactsComplete(List<Contact> items) {

  }
  @override
  void onLoadContactsError() {}

}

void main() {

  test('ContactListPresenter test', () {
    Injector.configure(Flavor.MOCK);
    MockView view = new MockView();

    ContactListPresenter presenter = new ContactListPresenter(view);

    presenter.loadContacts();

    verify(view.onLoadContactsComplete).called(1);

  });

}
Run Code Online (Sandbox Code Playgroud)

我想确保presenter.loadContacts()从代码中调用when ,然后view.onLoadContactsComplete也调用verify ,但出现错误:

用于非模拟对象

有没有可能用 Mockito 做到这一点?

更新:

abstract class ContactListViewContract {
  void onLoadContactsComplete(List<Contact> items);
  void onLoadContactsError();
}
Run Code Online (Sandbox Code Playgroud)

这里的onLoadContactsComplete方法被称为

class ContactListPresenter {
  ContactListViewContract _view;
  ContactRepository _repository;

  ContactListPresenter(this._view){
    _repository = new Injector().contactRepository;
  }

  void loadContacts(){ …
Run Code Online (Sandbox Code Playgroud)

unit-testing mockito dart flutter

6
推荐指数
1
解决办法
5774
查看次数

标签 统计

dart ×1

flutter ×1

mockito ×1

unit-testing ×1