简体   繁体   English

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

[英]How to unit test constructor when using nested test classes

Assuming I have some logic in a class constructor that I wish to unit test, how would I structure it if I am using xUnit.net and nested test classes for each method? 假设我在类构造函数中有一些逻辑要进行单元测试,如果我对每个方法使用xUnit.net和嵌套测试类,我将如何构造它?

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()...
    }
}

You're already testing it in your IsCorrect() test technically but if you want an explicit test: 您已经在技术上通过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()...
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM