使用Microsoft Fakes来填充SerialPort对象

时间:2018-05-23 03:15:35

标签: c# .net visual-studio-2017 microsoft-fakes shim

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

1 个答案:

答案 0 :(得分:0)

微软的回答here

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

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