在C#中,我的控制器中有一个方法,它从请求对象中获取内容。
public class xController: BaseController
{
[HttpPost]
[Route("confirm")]
public void Confirmation(string Content)
{
var content = Request.Content.ReadAsStringAsync().Result;
}
}
我使用以下代码构建了一个单元测试,但是对于请求对象,错误带有null ref 。
[Test]
public void Confirmation()
{
//arrange
var con = new xController();
//act
var res = con.Confirmation("hello");
//assert
Assert.IsNotNull(res);
}
答案 0 :(得分:1)
使用TestHelper中的MVCContrib,您应该可以写下这样的内容:
[Test]
public void Confirmation()
{
//arrange
TestControllerBuilder builder = new TestControllerBuilder();
var con = new xController();
builder.InitializeController(con);
//act
var res = con.Confirmation("hello");
//assert
Assert.IsNotNull(res);
}
答案 1 :(得分:0)
你可以
1)在控制器中注入HttpContextBase并使用它来访问其任何属性,例如'请求'
2)模拟并在测试中设置ControllerContext。
围绕这些方面的事情:
margin: 0 auto;
position: relative;