如何为 Visual Studio 插件编写单元测试?

4
我想编写单元测试的一些插件方法直接通过 Visual Studio 传递 COM 对象。例如:
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
   DTE2 d = (DTE2)application;
   ...
}

因为这些对象不可序列化,所以我不能让单元测试代码从磁盘中读取它们。
除了创建实现相同COM相关接口并具有返回无意义/可疑数据属性的自定义类的实例之外,是否有一种方法可以测试这种方法而不实际启动Visual Studio?
1个回答

1
我通常发现这种类型的代码更难进行单元测试。这主要是因为,正如你所说,与COM相关接口存在硬依赖关系。
您可能能够抽象出一些依赖项,并对这些类型进行孤立测试。 查看一些示例,请参见此处
个人而言,我不建议针对这些类型的方法编写单元测试。 它更像是插件的入口点,基本上是协调调用。您可能不会从单元测试该方法中获得太多价值。
以下是一些可能帮助您使用DTE实例编写测试的内容 DTE和单元测试 如何对与VS DOM交互的Visual Studio AddIn进行单元测试

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接