.NET MAUI 单元测试、依赖注入与 REST 服务使用指南
1. 单元测试基础
在单元测试中,我们通常会关注测试结果的各项指标,例如:
- [1] 测试的数量
- [2] 通过的测试数量
- [3] 失败的测试数量
- [4] 测试耗时的总结和说明
- [5] 每个测试的执行情况,绿色对勾表示通过,红色叉号表示失败,同时会列出每个测试的耗时。
然而,有些测试可能存在问题。例如,在某个测试中,调用 Init
方法可能不会填充 PreferenceList
,因为服务可能返回零条记录。我们需要通过断言 PreferenceList
不为空来解决这个问题。另外,该测试依赖于 PreferenceService
的运行,而 GetPreferences
方法在开发阶段调用的是 GetPreferencesMock
,但在最终的应用中会进行 API 调用,这可能会导致测试耗时过长甚至停滞。为了解决这个问题,我们需要一个模拟的 PreferenceService
,它能够快速返回可预测的集合。
2. 模拟对象(Mocks)
在测试过程中,我们经常需要与耗时不确定的方法进行交互,例如从数据库或 API 获取数据。调用这类方法可能会使单元测试陷入停滞,因此我们使用模拟对象(Mock)来创建数据库或 API 的虚假表示。模拟对象具有两个优点:响应迅速且结果可预测。