猿问

我应该使用什么断言来代替“Assert.DoesNotThrow ....”?

我正在学习一些关于单元测试的教程。问题是旧版本的 xUnit.net 提供了一个“Assert.DoesNotThrow”,现在已被删除。我应该用什么代替?

(在下面的教程中使用了这个旧的断言)


   [Fact]

    public void returns_json_response()

    {

        string results = execute("Batman");


        Assert.Throws.Nothing((new JavaScriptSerializer().Deserialize<dynamic>(results)));

    }


心有法竹
浏览 149回答 2
2回答

慕斯王

Record.Exception您可以使用如下所示的方法检查异常。var&nbsp;exception&nbsp;=&nbsp;Record.Exception(()&nbsp;=>&nbsp;new&nbsp;JavaScriptSerializer().Deserialize<dynamic>(results)); Assert.Null(exception);

撒科打诨

您应该测试“result”的值,否则您测试的只是针对 JavascriptDeserializer。如果你想在动态中包含序列化,那很好,但你应该这样做,例如;var dynamicFoo = new JavaScriptSerializer( //etcAssert.Equal("bar", dynamicFoo.Bar);注意这不是测试序列化,而是测试字符串results。您还可以测试实际的字符串值。
随时随地看视频慕课网APP
我要回答