Модульное тестирование свойств класса с использованием C # и отражения - PullRequest
0 голосов
/ 20 ноября 2018

Я столкнулся с некоторыми трудностями при модульном тестировании в C #.

Допустим, у меня есть

class Dummy{
    TypeA Foo {get; set;}
    TypeB Bar {get; set;}
}

и метод испытания

[TestMethod]
public void TestStuff()
{
    Type type = typeof(Dummy);
    PropertyInfo[] properties = type.GetProperties();

    foreach(PropertyInfo property in properties)
    {
        string result= MyStaticClass.ProcessProperty(property.Name);
        Assert.IsFalse(string.IsNullOrWhiteSpace(result));
    }
}

Тест выполняется нормально, но когда он не проходит, я понятия не имею, какое свойство вызывает проблему.

В других методах тестирования я использовал [DataTestMethod] и [DataRow(stuff)], чтобы предоставить отдельные входы и узнать, что вызвало сбой теста.

Есть ли способ сделать что-то подобное с помощью отражения?

Я думаю о неправильном модульном тесте?

Я бы хотел использовать этот подход для проверки согласованности, это вообще неправильно?

1 Ответ

0 голосов
/ 20 ноября 2018

Assert имеет много интересных свойств params!

Вы можете сделать что-то вроде:

Assert.IsFalse(string.IsNullOrWhiteSpace(result), $"{property.Name} is null");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...