带有返回对象的NUnit 3 ExpectedException

时间:2018-02-19 15:50:15

标签: c# nunit-3.0

在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中重写它?我无法处理它......

2 个答案:

答案 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>());
}