使用 NUnit 对隐式运算符进行单元测试

我想弄清楚如何使用 NUnit 围绕隐式转换编写单元测试。


到目前为止,我能够做到的唯一方法是创建一个静态函数,该函数将对象将转换为的类型作为参数并立即返回它。


public class Foo

{

    public Foo(string name)

    {

        Name = name;

    }

    public string Name { get; set; }

}

public class Bar

{

    public Bar(string name)

    {

        Name = name;

    }

    public string Name { get; set; }


    public static implicit operator Foo(Bar bar)

    {

        return new Foo(bar.Name);

    }

}

[Test]

public void BarToFooImplicitConversionTest()

{

    var bar = new Bar("FooBar");

    var foo = ConvertBarToFooImplicitly(bar);

    foo.Name.Should().Be("FooBar");

}

private static Foo ConvertBarToFooImplicitly(Foo foo)

{

    return foo;

}

NUnit 中是否有我遗漏的东西,或者是否有更好的方法来做到这一点?


九州编程
浏览 61回答 1
1回答

一只萌萌小番薯

只需使用显式类型而不是var触发隐式运算符,例如[Test]public void Should_be_possible_to_convert_bar_to_foo(){    //Arrange    const string fooBar = "FooBar";    Bar bar = new Bar(fooBar);    //Act    Foo foo = bar;    //Assert    foo.Name.Should().Be(fooBar);}
打开App,查看更多内容
随时随地看视频慕课网APP