我正在关注一些有关单元测试的教程。问题是xUnit.net的较早版本提供了一个“ Assert.DoesNotThrow”,现在已将其删除。我应该用什么代替呢?
(在下面的教程中,将使用此旧断言)
[Fact]
public void returns_json_response()
{
string results = execute("Batman");
Assert.Throws.Nothing((new JavaScriptSerializer().Deserialize<dynamic>(results)));
}
答案 0 :(得分:0)
您可以使用Record.Exception
方法检查异常,如下所示。
var exception = Record.Exception(() => new JavaScriptSerializer().Deserialize<dynamic>(results));
Assert.Null(exception);
答案 1 :(得分:0)
您应该测试'result`的值,否则测试只是针对JavascriptDeserializer。
如果您要在动态对象上包括序列化,那很好,但是您应该这样做,例如;
var dynamicFoo = new JavaScriptSerializer( //etc
Assert.Equal("bar", dynamicFoo.Bar);
note 这不是要测试序列化的字符串,而是测试results
字符串。您还可以测试实际的字符串值。