我正在为一个类编写单元测试,并且希望在检查每个参数是否为空时拥有单独的异常消息。
但我不知道如何实现下面的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);
}
}
作为奖励,非常欢迎对这种测试的适用性进行评论!
nameof
来防范了这种情况。 - Damien_The_Unbeliever