模拟外部硬件

时间:2014-06-01 18:13:31

标签: .net mocking device

如何模拟连接到我的c#4.0 .NET应用程序的外部设备?是否有一个特定的框架可以让它更容易? 我还没有尝试过任何东西。

1 个答案:

答案 0 :(得分:3)

首先,通过在程序和硬件之间放置一些东西,可以让您的生活更轻松。例如,假设您有可以打开和关闭冰箱的硬件:

public class Fridge {

    public void SwitchOn() {
        // Call Fridge Hardware
    }

    public void SwitchOff() {
        // Call Fridge Hardware
    }
}

然后,您可以从此类中提取接口,如下所示:

public interface IPoweredAppliance {
    void SwitchOn();
    void SwitchOff();
}

现在,您可以在程序中依赖IPoweredAppliance,为“真实生活”提供Fridge类的实例,并在测试中提供测试双重。

你需要明确地实现接口,因为C#名义上是键入的......

public class Fridge : IPoweredAppliance {

您可以手动编写test-double,也可以使用模拟框架,该框架将基于界面创建一个,这通常更容易。

任何嘲弄框架都会非常简单...... Rhino Mocks,MOQ,NMock2 - 我更喜欢Rhino,但其他人也很好。