【发布时间】:2014-02-18 17:18:19
【问题描述】:
我有通用的 EntityServiceBaseTestClass 并且它具有通用测试。但是,一旦我继承了特定测试域中的类,测试就不会运行。但是,如果我将继承的测试类与基本测试类放在同一个程序集中,它就可以工作。 Ho 可以欺骗 Visual Studio 运行基类测试,即使它位于不同的程序集中。 例如:
**namespace bla bla...Domain.Tests**
[TestClass]
public class EntityServiceBaseTestClass<TDomainEntity, TKey> where TDomainEntity :
DomainEntityBase<TDomainEntity, TKey> where TKey :
IEquatable<TKey>
{
[TestMethod]
public void CanSaveAddressMustUpdate()
{
//do generic tests
}
}
**namespace bla bla...Domain.Customers.Tests**
{
[TestClass]
public class CustomerTests : EntityServiceBaseTestClass<Address, Guid>
{
some specific domain tests
}
}
如果文件不在同一个程序集中,则不会调用 CanSaveAddressMustUpdate()。
我在msdn 找到了对该限制的解释:
“一个测试类可以从同一个程序集中的另一个测试类继承方法。这意味着您可以在基测试类中创建测试方法,然后在派生测试类中使用这些方法”
【问题讨论】:
标签: c# .net unit-testing inheritance mocking