使用Microsoft假货填充串行端口对象



我想为调用System.IO.Ports.SerialPort对象的类编写一个单元测试。我需要从假串行端口返回罐装/模拟数据。当我为System.dll创建一个 Fakes 程序集时,它会生成一个System.IO.Ports.Fakes.StubSerialPort但没有System.IO.Ports.Fakes.ShimSerialPortStubSerialPort似乎不包含很多方法,大多数只是构造函数。我在任何地方都找不到任何这样做的例子,所以我在这里发布。我正在运行VS 2017企业版。

Microsoft的答案在这里。

出于性能原因,Fakes 默认情况下不会在 System/mscorlib 模块中生成所有类型的填充程序。要告诉它为"System.IO.Ports"生成填充程序,您可以在mscorlib.fakes和system.fakes中为您的项目设置以下内容:

<ShimGeneration>
<Add Namespace="System.IO.Ports!"/>
</ShimGeneration>

最新更新