在.NET中调用基类中的测试方法

时间:2014-02-18 17:18:19

标签: c# .net unit-testing inheritance mocking

我有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

“测试类可以继承来自同一程序集中的另一个测试类的方法。这意味着您可以在基础测试类中创建测试方法,然后在派生测试类中使用这些方法”

1 个答案:

答案 0 :(得分:1)

由于微软记录了限制,我猜你没有任何机会解决问题。

您可以做的是更改测试框架。使用Nunit,一切都像魅力一样(使用ReSharper Test Runner测试)。