【问题标题】:Mocking external hardwares模拟外部硬件
【发布时间】:2014-06-01 18:13:30
【问题描述】:

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

【问题讨论】:

  • 我建议您先用谷歌搜索,因为快速搜索会为您提供一两个可能的答案

标签: .net mocking device


【解决方案1】:

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

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 {

您可以手动编写测试替身,也可以使用模拟框架,它会根据接口创建一个,这通常更容易。

任何模拟框架都非常简单...Rhino Mocks、MOQ、NMock2 - 我自己更喜欢 Rhino,但其他框架也不错。

【讨论】:

  • 可能会很好地表明 Fridge 实现了 IPoweredAppliance
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 2013-06-14
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多