Windows phone/store 个应用中的单元测试

Unit testing in Windows phone/store apps

我正在开发 Windows Phone/Store 和 Windows 10 UWP 应用程序。我试图了解什么是单元测试的好技巧。

我已经设置了单元测试项目,并且编写了一些单元测试。我正在使用 CaliburnMicro 框架,我有设置构造函数注入,这反过来帮助我进行单元测试,因为我定义了接口。

测试内部 API 是一种好习惯吗?例如,假设我有一项检查 NetworkInfomation 并给我适当结果的服务或电池检查服务?测试这些会好吗?

此外,我还使用后台传输服务和后台任务。测试上传场景是否可行?

单元测试的新手,非常感谢您的帮助。

我也在我的代码中使用 Caliburn.Micro,但我认为大多数 MVVM 框架的工作方式相同并不重要。我将 Moq 用于我的模拟框架,它非常适合依赖注入。

Moq 与 Caliburn 结合使用的问题是 Caliburn 使用了很多扩展功能,这些功能很难甚至不可能 Verify

尽可能抽象 avoid testing implementation details,简而言之,测试行为并对实现细节(例如 NetworkInfomation 和后台传输服务)进行抽象。

public class GolldysNetworkInfomation : INetworkInfomation
{
   NetworkInfomation networkInformation;
}

public class SystemUnderTest
{
    public SystemUnderTest(INetworkInfomation networkInfomation)
    {
    }
}

您现在可以在单元测试期间使用 INetworkInfomation 来模拟您的 NetworkInfomation,并允许您创建 INetworkInfomation 的其他实现。

关于单元测试有两种思想流派:

  1. 经典
  2. 模仿者

您可以查看 Classical vs Mockist 方法以更好地理解。

希望这对您有所帮助。