2012-12-14 56 views
0

我正在脑冻结。在单元测试中检查来自MVC web api的响应类型

我从web api post回来的回应是;

<string>985c4198-8892-4738-8f85-d9adf5ff474a</string> 

这是返回使用;

return myGuid.ToString(); 

我想能够单元测试响应,但对于我的生活无法想象如何去做。我需要能够检查它是一个Guid。我相信我错过了将反应“反序列化”为typeof(string),然后我可以TryParse()的步骤,但这是我今晚头脑发生问题的地方。

+0

我认为你不应该测试对web api的调用。您应该单元测试web api中的逻辑,并且您还可以通过伪造调用web api来测试调用代码,但是不应该测试实际的调用。这是一个集成测试,而不是单元测试。 – Dante

回答

0

喜欢的东西

Guid g = Guid.Empty(); 

string webApiResult = GetApiResult(); 

webApiResult = webApiResult.Replace("<string>", string.Empty); 
webApiResult = webApiResult.Replace("</string>", string.Empty); 

Assert.IsTrue(Guid.TryParse(webApiResult , out g)); 

的关键是使用的TryParse它会返回一个布尔值,指示解析是否成功。

+0

就是这样,响应将失败一个TryParse,因为它不是一个GUID,它是一个包装在中的GUID。你也不能创建一个空的GUID。 – ChrisBint

+0

啊,好的。在这种情况下,它看起来像你可以简单修剪部分,只留下GUID部分,然后可以将其用于TryParse。 –