使用嵌套测试时如何对构造函数进行单元测试 类

How to unit test constructor when using nested test classes

假设我在 class 构造函数中有一些我希望进行单元测试的逻辑,如果我使用 xUnit.net 和每个方法的嵌套测试 classes?

using Xunit;

public class MyClass
{
    public MyClass()
    {
        // Some logic to test
    }

    public int GetResult()
    {
        return 123;
    }
}

public class MyClassFacts
{
    // How to test MyClass constructor?

    // Nested classes to test each of MyClass' methods
    public class GetResult
    {
        [Fact]
        public void IsCorrect()
        {
            var myClass = new MyClass();
            int result = myClass.GetResult();
            Assert.Equal(123, result);
        }

        // Other tests for MyClass.GetResult()...
    }
}

从技术上讲,您已经在 IsCorrect() 测试中对其进行了测试,但如果您想要进行显式测试:

using Xunit;

public class MyClass
{
    public MyClass()
    {
        // Some logic to test
    }

    public int GetResult()
    {
        return 123;
    }
}

public class MyClassFacts
{
    [Fact]
    public void Ctor()
    {
        var myClass = new MyClass();
        Assert.NotNull(myClass);
        // Any other asserts you require
    }

    // Nested classes to test each of MyClass' methods
    public class GetResult
    {
        [Fact]
        public void IsCorrect()
        {
            var myClass = new MyClass();
            int result = myClass.GetResult();
            Assert.Equal(123, result);
        }

        // Other tests for MyClass.GetResult()...
    }
}