在Nunit2,我有一个像
这样的测试[Test, ExpectedException(typeof(NullReferenceException))]
public void NullString()
{
secToken = new SecurityToken(null);
secToken.user.Should().BeNull();
secToken.pass.Should().BeNull();
secToken.ip.Should().BeNull();
}
如何在Nunit3中重写它?我无法处理它......
答案 0 :(得分:2)
建议使用Assert.Throws
,例如:
Assert.Throws<NullReferenceException>(() => secToken = new SecurityToken(null))
这是对测试线的更接近的范围,而不仅仅是说'我认为测试中的某些东西会抛出'。
它还允许您继续下面的行,并返回抛出的异常。
答案 1 :(得分:0)
首先,我认为测试有点不清楚。您认为异常发生在哪里?在构造函数中?如果它应该扔到那里,为什么还要检查构造对象的值?
其次,我会遵循Lepijohnny的建议,并使用“constraint model”跟随NUnit 3风格。
类似的东西:
[Test]
public void NullString()
{
Assert.That(() => new SecurityToken(null), Throws.Exception.TypeOf<NullReferenceException>());
}