单元测试-C#Wcf Web API反序列化响应

本文关键字:反序列化 响应 API Web -C#Wcf 单元测试 | 更新日期: 2023-09-27 17:59:07

我正在尝试对返回非基元的web服务进行单元测试。响应可以是xml或json,具体取决于请求。在我的测试中,如果我能将内容体反序列化为我的一个对象,那就太好了。这里有一些代码:

    [WebGet(UriTemplate = "{arg1}/{arg2}")]
    public HttpResponseMessage<MyType> GetSomethingCool(string arg1, long arg2)
    {    
         return new HttpResonseMessage<MyTpe>(new MyType());
    }
    public class MyType
    {
         public string Property1 { get; set; }
         public long Property2 { get; set; }
         public string Property3 { get; set; }
    }

还有我的测试:

    [Test]
    public void MyTestForTheWebService_ReturnsText()
    {
          Service1 service = new  Service1 (_mockRepository.Object);
          HttpResponseMessage<MyType> result = service.GetSomethingCool("Something", **);
          Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
          MyType resultContent = result.Content.ReadAs<MyType>(); // doesn't work
          Assert.AreEqual("expected value", resultContent .Property1);
          .....

所以基本上我需要能够扭转结果。内容到MyType,但不知道如何。感谢

单元测试-C#Wcf Web API反序列化响应

尝试执行:

MyType resultContent = (MyType)result.Content.ReadAs();

我相信你遇到了一个已知的错误。