как установить массив bool в теге InlineAutoData в модульном тесте? - PullRequest
1 голос
/ 27 мая 2020

Я хочу протестировать метод. Для проверки этого метода требуется логический массив. Как я могу установить этот массив в теге InlineAutoData? Мой пример кода выглядит следующим образом:

    [Theory]
    [InlineAutoData([true,false,false])]
    public void ToEntityTest(bool[] groups, HeadModel model)
    {
        model.Groups = new HeadGroupsModel()
        {
            Groups = groups
        };
        var headModel = model.ToEntity().ToModel().ToEntity();
        headModel.Should().BeEquivalentTo(model.ToEntity());
    }

Он не работает. группы создаются автоматически, а не то, что я установил. Спасибо за внимание и поддержку.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Вам нужно создать правильный массив:

[Theory]
[InlineAutoData(new bool[true,false,true])]
public void ToEntityTest(bool[] groups, HeadModel model)
{
    model.Groups = new HeadGroupsModel()
    {
        Groups = groups
    };
    var headModel = model.ToEntity().ToModel().ToEntity();
    headModel.Should().BeEquivalentTo(model.ToEntity());
}`
0 голосов
/ 27 мая 2020

Использовать аргумент params

[Theory]
[InlineData(true,false,false)]
public void ToEntityTest(params bool[] groups)
{
    var model = new HeadModel
    {
        Groups = new HeadGroupsModel { Groups = groups }
    }

    var headModel = model.ToEntity().ToModel().ToEntity();
    headModel.Should().BeEquivalentTo(model.ToEntity());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...