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

标签 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 :

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

最佳答案

由于 Microsoft 记录了限制,我想您将没有任何解决方法。

你能做的就是改变你的测试框架。使用 Nunit,一切都像魅力一样工作(使用 ReSharper Test Runner 进行测试)。

关于c# - 在 .NET 中调用基类中的测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21860840/

相关文章:

c# - 尝试从资源字典访问图像资源时多个 NUnit 测试类失败

c# - 在 C# 中将 JSON 变量转换为小写

c# - 我的正则表达式不起作用

c# - effective c# 第二版勘误表

c# - 有条件包括

c# - 使用 log4net 的正确方法(记录器命名)

c# - 包含 TableValueParameter 的 Dapper 存储过程

unit-testing - 你用什么来对你的 Web UI 进行单元测试?

javascript - 在单元测试中创建具有特定属性的错误对象

c# - 无法使用 IP 地址访问 ASP.NET Web API