首页 > 解决方案 > 如何在未来完成后验证某些行为,使用 mockito

问题描述

我想用mockito验证一个动作是否在未来完成后完成。但是我应该如何进行呢?

这是我尝试执行的测试:

test('action should be called after future is complete',
      () {
    //GIVEN
    // ...

    //WHEN
    functionBeingTested();

    //THEN
    verify(mockedDependency.futureReturningFunction());
    verify(mockedDependency.action());
  });

这些是通过测试的代码,但只有其中一个应该通过:

// Correct code
functionBeingTested() {
  mockedDependency.futureReturningFunction().then(() {
    // ...
  }).whenComplete(() {
    mockedDependency.action();
  });
}

// Wrong code that also passes the test
functionBeingTested() {
  mockedDependency.futureReturningFunction().then(() {
    // ...
  });
  mockedDependency.action();
}

编辑:

我知道我的测试不太正确。请帮我改正。

我真正想要的是验证是否在完成mockedDependency.action()后调用mockedDependency.futureReturningFunction()。我怎样才能做到这一点?

标签: flutterdartmockito

解决方案


推荐阅读