Простое тестирование с корректным разделением результатов тестов, когда в параметрах тестового метода находятся объекты

Я тестирую код с помощью XUnit. У меня возникла проблема с необходимостью создания объекта внутри параметров(в [InlineData]). Я пробовал использовать [MemberData], которая сама по себе является не самым элегантным способом, да и к тому же не работает так, как хотелось бы. Давая несколько наборов параметров я по итогам получаю лишь один результат теста, что, если в действительности тестов, скажем, 10, не очень-то удобно.

Вопрос: Можно ли как-то с параметрами-объектами и нормальным разделением результатов тестов тестировать код? А ещё лучше, если бы вы подсказали другой фреймворк для тестирования, где это выглядит элегантней и нет такой дискриминации объектов в параметрах.

Update Объяснение с кодом: https://pastebin.com/fZN0Fa6z


Ответы (1 шт):

Автор решения: Rinkton Games

Мне помог другой ответ на англоязычном StackOverflow от пользователя user1807319.

Решение ни то чтобы красивое и лаконичное, но с учётом безвыходности на что-то более понятное, оно весьма неплохо и, что самое главное, работает, и работает правильно.

Единственно, я немного модифицировал код автора во имя упрощения и безопасности.

Например в [MemberData("TestData", MemberType = typeof(TestDataProvider))], я заменил "TestData" на nameof(TestData), чтобы не менять строку, если я изменю имя класса.

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

→ Ссылка