为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
心有法竹 2023-05-14 16:34:56
我正在学习一些关于单元测试的教程。问题是旧版本的 xUnit.net 提供了一个“Assert.DoesNotThrow”,现在已被删除。我应该用什么代替?(在下面的教程中使用了这个旧的断言)   [Fact]    public void returns_json_response()    {        string results = execute("Batman");        Assert.Throws.Nothing((new JavaScriptSerializer().Deserialize<dynamic>(results)));    }
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

Record.Exception您可以使用如下所示的方法检查异常。

var exception = Record.Exception(() => new JavaScriptSerializer().Deserialize<dynamic>(results));
Assert.Null(exception);


查看完整回答
反对 回复 2023-05-14
?
撒科打诨

TA贡献1934条经验 获得超2个赞

您应该测试“result”的值,否则您测试的只是针对 JavascriptDeserializer。


如果你想在动态中包含序列化,那很好,但你应该这样做,例如;


var dynamicFoo = new JavaScriptSerializer( //etc


Assert.Equal("bar", dynamicFoo.Bar);

注意这不是测试序列化,而是测试字符串results。您还可以测试实际的字符串值。


查看完整回答
反对 回复 2023-05-14
  • 2 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信