Я пишу модульные тесты для класса, и я хотел бы иметь отдельные сообщения об исключениях при проверке каждого параметра на null.
Чего я не знаю, так это как реализовать метод GetParameterNameWithReflection
ниже:
public class struct SUT
{
public SUT(object a, object b, object c)
{
if (a == null)
{
throw new ArgumentNullException(nameof(a));
}
// etc. for remaining args
// actual constructor code
}
}
[TextFixture]
public class SutTests
{
[Test]
public void constructor_shouldCheckForFirstParameterNull()
{
var ex = Assert.Throws<ArgumentNullException>(new Sut(null, new object(), new object()));
string firstParameterName = GetParameterNameWithReflection(typeof(SUT);)
Assert.AreEqual(firstParameterName, ex.ParamName);
}
}
В качестве бонуса приветствуются комментарии о целесообразности этого типа тестирования!