【发布时间】:2019-04-26 07:05:05
【问题描述】:
我只是在玩一些 Json 和 Fluentassertions,我能够成功调用 API,获取结果,反序列化它们,但是由于某种原因,当我对响应进行断言时,它会丢失数据它是空的。我已经调试过了,可以看到数据流过,然后在断言过程中丢失。
任何帮助表示赞赏。
{
[TestClass]
public class UnitTest1
{
HttpClient client = new HttpClient();
[TestMethod]
public void ActorNotInSeason6Episode1()
{
try
{
//test = extent.CreateTest("Test 1");
HttpResponseMessage respone = client.GetAsync("https://api.themoviedb.org/3/tv/1399/season/6/episode/1/credits?api_key=").Result;
Assert.IsTrue(respone.IsSuccessStatusCode.Equals(true));
string ResponseMessage = respone.Content.ReadAsStringAsync().Result;
Actors actors = JsonConvert.DeserializeObject<Actors>(ResponseMessage);
//var a = Actors.cast["cast"];
//var names = a.Children[];
//var a = actors.cast.Children();
actors.cast.Should().Contain("Emilia Clarke", "Test");
}
catch(AssertFailedException)
{
Assert.Fail();
}
}
}
}
class Actors
{
public JArray cast { get; set; }
public JArray guest_stars { get; set; }
}
}
JSON
{[
{
"character": "Daenerys Targaryen",
"credit_id": "5256c8af19c2956ff60479f6",
"gender": 1,
"id": 1223786,
"name": "Emilia Clarke",
"order": 0,
"profile_path": "/lRSqMNNhPL4Ib1hAJxmDFBXHAMU.jpg"
}
]}
【问题讨论】:
-
显示的 JSON 没有
cast键。显示的 JSON 是否准确? -
当我调用 API 时,演员密钥在那里
{"cast":但 JArray 删除它我相信并只存储上述内容 -
这听起来不准确。显示的 JSON 与
Actors对象模型定义不匹配 -
这是我签入 Postman 时的 JSON:{[
{"cast":[{ "character": "Daenerys Targaryen", "credit_id": "5256c8af19c2956ff60479f6", "gender": 1, "id": 1223786, "name": "Emilia Clarke", "order": 0, "profile_path": "/lRSqMNNhPL4Ib1hAJxmDFBXHAMU.jpg" } ]}当我在模型定义中调试和检查cast时,它会在没有{"cast":的情况下存储它 -
我在浏览器中调用API得到
{"cast":[{"character":"Daenerys Targaryen",....
标签: c# unit-testing nunit assertion fluent-assertions