我正在學(xué)習(xí)一些關(guān)于單元測(cè)試的教程。問(wèn)題是舊版本的 xUnit.net 提供了一個(gè)“Assert.DoesNotThrow”,現(xiàn)在已被刪除。我應(yīng)該用什么代替?(在下面的教程中使用了這個(gè)舊的斷言) [Fact] public void returns_json_response() { string results = execute("Batman"); Assert.Throws.Nothing((new JavaScriptSerializer().Deserialize<dynamic>(results))); }
2 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
Record.Exception
您可以使用如下所示的方法檢查異常。
var exception = Record.Exception(() => new JavaScriptSerializer().Deserialize<dynamic>(results)); Assert.Null(exception);

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
您應(yīng)該測(cè)試“result”的值,否則您測(cè)試的只是針對(duì) JavascriptDeserializer。
如果你想在動(dòng)態(tài)中包含序列化,那很好,但你應(yīng)該這樣做,例如;
var dynamicFoo = new JavaScriptSerializer( //etc
Assert.Equal("bar", dynamicFoo.Bar);
注意這不是測(cè)試序列化,而是測(cè)試字符串results。您還可以測(cè)試實(shí)際的字符串值。
- 2 回答
- 0 關(guān)注
- 194 瀏覽
添加回答
舉報(bào)
0/150
提交
取消