【发布时间】:2012-10-09 22:49:07
【问题描述】:
什么是初始化类并将初始化保存在一个变量中以供其他方法使用而不是每次都初始化的最佳方法。
这是我的代码:
private Employee employee;
public Employee SystemUnderTest
{
get
{
if (employee == null)
{
employee = new Employee();
}
return employee;
}
}
//..method1 Test1
public void TestMethod1()
{
Assert.IsTrue(SystemUnderTest.IsActive());
}
//..method2 Test
public void TestMethod2()
{
Assert.IsTrue(SystemUnderTest.IsEmployeeExists());
}
PS:调试时我注意到它确实使用每个方法初始化了 Employee 对象。
使用 3.5 框架。
【问题讨论】:
-
您的测试方法应该相互独立。在 C#/.NET 中创建对象非常快。您是否发现一些性能问题?
-
不是真的,但我认为不初始化的唯一原因是因为我有从外部源读取一些数据的基类..
-
您使用的是什么单元测试框架? NUnit, XUnit, mstest, ... ?
-
运行单元测试时不应该有任何外部 IO。否则它们不是单元测试而是集成测试。我建议你模拟部分获取外部数据的代码。
-
看看haacked.com/archive/2008/07/22/unit-test-boundaries.aspx 讨论使用外部数据IO进行单元测试
标签: c# unit-testing tdd mstest