Как выполнить модульное тестирование метода, который возвращает действие <AuthenticationOptions>? - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь провести модульное тестирование этого метода, который возвращает Action<SomeOptions>.

public class MyOption
{
    public Action<SomeOptions> GetOptions()
    {
        return new Action<SomeOptions>(o =>
            {
                o.Value1 = "abc";
                o.Value2 = "def";
            }
        );
    } 
}

Я хотел бы проверить в своем тесте, что Value1 равно "abc", а Value2 равно "def"

[Test]
public void GetOptions_ReturnsExpectedOptions()
{   
    var option = new MyOption();

    Action<SomeOptions> result = option.GetOptions();

    //Assert
    Assert.IsNotNull(result);

    //I also want to verify that the result has Value1="abc" & Value2 = "def"
}

Я не уверен, как проверить ту часть кода, которая проверяет, что результат имеет Value1="abc" & Value2 = "def"

1 Ответ

0 голосов
/ 04 января 2019

Как прокомментировал @Igor, вы должны вызвать действие и проверить результаты действия. Попробуйте это:

[Test]
public void GetOptions_ReturnsExpectedOptions()
{
    var option = new MyOption();

    Action<SomeOptions> result = option.GetOptions();

    //Assert
    Assert.IsNotNull(result);


    //Assign SomeOptions and pass into the Action
    var opts = new SomeOptions();
    result(opts);
    Assert.AreEqual("abc", opts.Value1);
    Assert.AreEqual("def", opts.Value2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...