Модульное тестирование неявного оператора с NUnit - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь выяснить, как написать модульный тест для неявного преобразования с помощью 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 что-то, чего мне не хватает, или есть лучший способ сделать это?это?

1 Ответ

1 голос
/ 01 апреля 2019

Просто используйте явные типы вместо 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...