c# - Nunit:是否可以让测试出现嵌套

标签 c# nunit

我想测试一个具有高圈复杂度的方法(叹息),我想在测试类中有一个类,这样一个方法测试类就会作为树中的一个节点出现。 Nunit 是否可行?如何实现?

 MyEntityTests
 |
 L_ MyComplexMethodTests
    L when_some_condition_than
    L when_some_other_condition_than

[TestFixture]
public class MyEntityTests
{
  [TestFixture]
  public class MyComplexMethodTests
  {
    [Test]
     public void when_some_condition_than() {} 
   etc.....

  }
}

最佳答案

您可以使用嵌套类来实现,这与您问题中的示例代码非常相似。

与您的代码的唯一区别是外部类不需要 [TestFixture] 属性,如果它仅用于结构并且本身没有测试的话。

您还可以让所有内部类共享一个Setup 方法,方法是将它放入外部类并让内部类继承外部类:

using NUnit.Framework;

namespace My.Namespace
{
    public class MyEntityTests
    {
        [SetUp]
        public void Setup()
        {
        }

        [TestFixture]
        public class MyComplexMethodTests : MyEntityTests
        {
            [Test]
            public void when_some_condition_than()
            {
            }

            [Test]
            public void when_some_other_condition_then()
            {
            }
        }
    }
}

在 NUnit GUI 中,这个测试类将如下所示:

NUnit GUI

关于c# - Nunit:是否可以让测试出现嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015145/

相关文章:

c# - HTTP 摘要认证 - 在多个 http 请求之间共享 MD5 实例

c# - LINQ - 仅针对最新记录的多个左外连接

c# - C# 中的哈希表比 C++ 更快?

c# - Xamarin NUnitLite 测试方法 : How to do shared tests that run in every platform?

c# - 使用NUnit出现不一致的可访问性错误,但仅使用MSTest可以正常编译吗?

nunit - Unity Nunit 和 Rhino 模拟

c# - 应用程序崩溃,事件名称为 CLR20r3?

.net - 如何使用 NAnt 0.86 beta 运行 NUnit v2.4.8 测试?

types - 如何使用 F# 语法将 Type 作为属性参数传递?

c# - Rider 无法找到已安装的 .NET Core,无法使用 MSBuild.dll 访问目录