【发布时间】:2012-12-06 06:08:26
【问题描述】:
可能重复:
What would be an alternate to [SetUp] and [TearDown] in MSTest?
我正在学习如何总体上使用单元测试和自动化测试,并且有一些我无法弄清楚/找不到答案的问题
我目前通过多个调用各种方法并在其中包含断言的 [TestMethod] 进行测试。现在,TestMethod 都有重复的代码来访问数据库并为其余的测试设置自己。一个例子是:
public void TestDBReturnsFooInFormatXyz() {
var foo = HitDBAndReturnStuff();
Assert.IsTrue( // foo format is xyz );
}
public void TestDBFooContainsAbc() {
var foo = HitDBAndReturnStuff();
Assert.IsTrue( // foo contains abc );
}
所以有几个问题: 在测试类中创建私有字段并让构造函数设置它们是最佳实践吗?
我是否应该在每个 TestMethod 中都这样做,因为测试速度并不重要?
我应该在构造函数顶部放置什么 [Test???] 以确保在运行测试时调用它?
我查看了 MSDN 和“Programming Microsoft Visual C# 2008: The Language”一书,但找不到任何关于单元测试的好信息。如果有我应该阅读的资源可以回答这些问题,请告诉我。
谢谢!
【问题讨论】:
-
那个副本完全是一个副本,但是
[TestInitialize]方法可能是你想要的。 -
谢谢,我没有意识到 [TestInitialize] 和 [CleanUp] 存在
-
不应将测试排除在重构阶段。
-
嗨,西蒙,如果您有时间,您可以详细介绍一下吗?我找到的最佳参考是:stackoverflow.com/questions/5657433/…,但我不清楚该答案的含义。我应该重构测试,所以在学习如何进行单元测试时不用担心重复的代码?
标签: c# unit-testing mstest