如何模拟连接到我的c#4.0 .NET应用程序的外部设备?是否有一个特定的框架可以让它更容易? 我还没有尝试过任何东西。
答案 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,但其他人也很好。