我应该使用什么断言 "Assert.DoesNotThrow...."?
What assert I should use instead "Assert.DoesNotThrow...."?
我正在学习一些有关单元测试的教程。问题是旧版本的 xUnit.net 提供了现在已删除的 "Assert.DoesNotThrow"。我应该用什么代替?
(在接下来的教程中使用了这个旧断言)
[Fact]
public void returns_json_response()
{
string results = execute("Batman");
Assert.Throws.Nothing((new JavaScriptSerializer().Deserialize<dynamic>(results)));
}
您可以使用 Record.Exception
方法检查异常,如下所示。
var exception = Record.Exception(() => new JavaScriptSerializer().Deserialize<dynamic>(results));
Assert.Null(exception);
您应该测试“result”的值,否则您测试的只是针对 JavascriptDeserializer。
如果你想在动态中包含序列化,那很好,但你应该这样做,例如;
var dynamicFoo = new JavaScriptSerializer( //etc
Assert.Equal("bar", dynamicFoo.Bar);
注意这里不是测试序列化,而是测试results
字符串。您还可以测试实际的字符串值。
我正在学习一些有关单元测试的教程。问题是旧版本的 xUnit.net 提供了现在已删除的 "Assert.DoesNotThrow"。我应该用什么代替?
(在接下来的教程中使用了这个旧断言)
[Fact]
public void returns_json_response()
{
string results = execute("Batman");
Assert.Throws.Nothing((new JavaScriptSerializer().Deserialize<dynamic>(results)));
}
您可以使用 Record.Exception
方法检查异常,如下所示。
var exception = Record.Exception(() => new JavaScriptSerializer().Deserialize<dynamic>(results));
Assert.Null(exception);
您应该测试“result”的值,否则您测试的只是针对 JavascriptDeserializer。
如果你想在动态中包含序列化,那很好,但你应该这样做,例如;
var dynamicFoo = new JavaScriptSerializer( //etc
Assert.Equal("bar", dynamicFoo.Bar);
注意这里不是测试序列化,而是测试results
字符串。您还可以测试实际的字符串值。