【发布时间】:2014-06-02 15:45:10
【问题描述】:
我有一个单元测试项目,它反映了我的应用程序的目录和命名空间结构,除了单元测试项目将所有内容包装在 Test 命名空间中。所以对这个类进行测试:
MyModule.MyNamespace.MySubNamespace.MyClass
将在此类中定义:
Test.MyModule.MyNamespace.MySubNamespace.MyClass
如果单元测试项目中也存在同名的类,当我尝试创建在常规(非单元测试)项目中定义的对象实例时,我在单元测试项目中遇到了问题。使用上面的示例,如果我在单元测试项目中使用其完全限定的类型名称创建类型为 MyClass 的变量:
MyModule.MyNamespace.MySubNamespace.MyClass myobject = new ....
编译器假定我指的是在Test 命名空间中定义的MyClass 对象,并且不会将类型名称视为完全限定名称。
简单的解决方案是重组我的单元测试命名空间,但我很好奇是否有办法解决这个问题。我需要一些方法来“强制”编译器将类型名称视为完全限定的 - 一种“突破”Test 命名空间的方法。有没有办法做到这一点?
如果没有,是否有更好的约定来明确命名我的单元测试?
【问题讨论】:
标签: c# unit-testing namespaces