我有一个 DLL 项目,我经常将其编译为一个.exe
,以便我可以轻松地测试其中的类。一个类包含一个Main()
方法,当我将它编译为.dll
文件时它是无用的。每当我将它编译为类库时,我想自动从项目中排除这个类。看来我一定是第一个遇到这个问题的人,因为全能的谷歌似乎没有回答我的问题:我该怎么做?
问问题
1068 次
2 回答
1
我会认真考虑单元测试是为了不断地这样做。即使没有正确实施单元测试,您也只是将其用作中间调试器。我什至会说做一个单元测试项目作为调试代码的控制台应用程序,在获得访问权方面,它会让你的生活更轻松,如果你希望在未来实现某种形式的单元测试你可以。
[TestMethod]
public class YourClassNameTests
{
public T YourObject;
[TestInitialize()]
public void Initializer()
{
YourObject = new T();
}
[TestMethod()]
public void YourMethodTest()
{
//Arrange
YourObject.ReliantProperty = 1;
//Act
var objResult = YourObject.YourMethod();
//Assert
Assert.IsTrue(objResult == 1);
}
}
于 2013-04-22T11:59:51.223 回答
0
你有几个我能想到的解决方案:
1)使用条件编译器选项。例如,只有在调试时才包含它
#如果调试
public void Main() {
// Do Stuff
}
#万一
2)制作 Main 方法internal
,或将其移动到您可以运行的测试项目中。然后你要么直接使用它,要么确保你的测试 DLL 可以看到内部方法。
3) 将 Main 方法移到引用原始 DLL 的完全不同的 .exe 中。(这类似于不使用测试框架的选项 2)。
于 2013-04-22T11:59:58.883 回答