如何解决如何测试是否在Dart / Flutter + MobX中调用了方法?
我在Flutter应用程序中使用MobX进行状态管理,并且我的商店有一个init()
方法,该方法用于使用启动时所需的所有信息来填充状态:
MyStore {
...
bool _initialized = false;
...
void init() {
if (!_initialized) {
fetchInfo();
_initialized = true;
}
}
...
@action
void fetchInfo() { alter observables of store }
}
由于我没有致力于TDD,因此我现在可以在实施后编写单元测试,而且我也不知道如何进行测试,例如init
调用fetchInfo
,实际上只运行一次。
如果fetchInfo
在另一个类中,我可以对其进行模拟,但是由于它改变了MyStore
的可观察性,因此我认为无法提取它。
有人对如何测试或重构有想法吗? 谢谢
解决方法
如果使用 fetchInfo 从外部检索数据,则有一种可能进行测试,因为我们可以假设此方法将调用某个存储库。但是如果只用于设置数据的方法,调用后可以直接在测试中验证数据。
方法 fetchInfo 似乎是一个私有方法,因此,将标记 _ 设置为它,如果不是这种情况,请忽略这一点,但如果是这种情况,您不应该担心单元测试中的私有方法,因为它们是internal,不能这样测试,因为它们只关心内部函数
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。