使用.NET嵌入式应用程序的测试单元

时间:2017-11-10 16:58:35

标签: c# .net unit-testing embedded

我编写了一个在嵌入式Windows上运行的应用程序。该应用程序从不同的串行端口读取数据,进行一些数据分析并将数据发送到另一台机器,主要是db。

应用程序在上一期间大量增长,我们需要添加一些测试单元来减少物理测试阶段。

现在,我需要一些建议来了解如何模拟串行端口以及模拟外部设备的正确方法。 一个小问题是由于代码里面的一些计时器弹跳效果,我要做什么?在没有De-Bouncing计时器的情况下进行了特殊构建?

同时,代码被称为一个有限的状态机,它可以简单地测试单个状态,但是状态之间的交互是什么?

祝你好运

1 个答案:

答案 0 :(得分:3)

我通常做的是创建一个完全目的的类是与外部设备交互,然后让它实现一个接口。

public interface IExternalDeviceInteractor
{
    string GetAStringFromTheDevice();
}

public class ExternalDeviceInteractor : IExternalDeviceInteractor
{
    public string GetAStringFromTheDevice()
    {
        //interact with device here
    }
}

然后,我创建了一个实现接口的类,并且只是吐出测试数据。

public class MockExternalDeviceInteractor : IExternalDeviceInteractor
{
    public string GetAStringFromTheDevice()
    {
        return "StringForTesting";
    }
}