我其实没有在一段时间内写任何单元测试,也许我只是摆脱了事物的摆动。我试图从我的WebApi中的控制器测试HttpResponseMessage。我没有错误,实际上测试完成后发现一个绿色检查,我发现它很奇怪,因为当我去调试它来仔细检查断言时,我意识到我并没有触及我的断言。这是我的测试。WebApi控制器单元测试不工作HttpResponseMessage
[Fact]
public void TestDudeManController()
{
//arrange
DudeManModel dmmRequest = new DudeManModel();
DudeManModel dmmResponse = new DudeManModel();
HttpResponseMessage hrm = new HttpResponseMessage();
dmmRequest.Name = "Test-Duder";
dmmResponse.Name = "Hey " + dmmRequest.Name + ", Im The Dude man.";
var dudeController = new DudeManController();
dudeController.Request = new HttpRequestMessage();
dudeController.Configuration = new HttpConfiguration();
//act
hrm = dudeController.Dude(dmmRequest);
//assert
//Assert.Equal(4, 4);
Assert.True(hrm.IsSuccessStatusCode);
}
这里是控制器
[HttpPost]
[Route("dude")]
public HttpResponseMessage Dude([FromBody]DudeManModel name)
{
log.Info("WEBAPI POST INITIATED::NAME IS::" + name.Name);
name.Name = "Hey " + name.Name + ", Im The Dude man.";
name.Link = "dude.png";
log.InfoFormat("WEBAPI POST UPDATED::NAME IS::{0}::PIC IS::{1}", name.Name, name.Link);
return Request.CreateResponse(HttpStatusCode.OK, name);
}
基本上我去这个 '线dudeController.Configuration =新HttpConfiguration();'就是这样。测试结束。测试被标记为通过。
这是一个标准的.Net Framework WebApi和Im,使用xUnit进行测试。任何想法为什么我的测试将该行视为成功的测试,我真的很感谢一些帮助。到目前为止,我从搜索中找不到太多内容。
*****免责声明
以防万一你想知道,没有什么奇怪的有关此测试的控制器。代码本身只是对电影The Big Lebowski的致敬。他永远是'The Dude'。但是阅读我的代码,现在看到它在这里看起来有点有趣。