Asp.net mvc 如何使用MvcContrib.TestHelper测试asp.net mvc post操作
我试图使用优秀的MvcContrib.TestHelper测试我的路由配置,但遇到了一个问题 请假设我的路由配置设置正确,并在TestFixture中初始化 我有一个名为Create的控制器(TransactionController)操作,它接受TransactionRecord类型的输入参数:Asp.net mvc 如何使用MvcContrib.TestHelper测试asp.net mvc post操作,asp.net-mvc,unit-testing,routing,mvccontrib-testhelper,Asp.net Mvc,Unit Testing,Routing,Mvccontrib Testhelper,我试图使用优秀的MvcContrib.TestHelper测试我的路由配置,但遇到了一个问题 请假设我的路由配置设置正确,并在TestFixture中初始化 我有一个名为Create的控制器(TransactionController)操作,它接受TransactionRecord类型的输入参数: [Trace, AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(TransactionRecord tx) {
[Trace, AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(TransactionRecord tx)
{
...
}
目前我的测试如下:
[Test]
public void TestRoute_POST_Transactions_Create()
{
"~/Transactions/".WithMethod(HttpVerbs.Post).ShouldMapTo<Web.Controllers.TransactionsController>(x => x.Create());
}
[测试]
public void TestRoute\u POST\u Transactions\u Create()
{
“~/Transactions/”.WithMethod(HttpVerbs.Post).ShouldMapTo(x=>x.Create());
}
我的问题是Create()方法接受TransactionRecord类型的参数,我不知道如何将其合并到测试中
我找不到任何这种性质的示例。由于TransactionRecord是根据post数据创建的,只需将null传递给您的测试:
[Test]
public void TestRoute_POST_Transactions_Create()
{
"~/Transactions/".WithMethod(HttpVerbs.Post).ShouldMapTo<Web.Controllers.Tr ansactionsController>(x
=> x.Create(null));
}
[测试]
public void TestRoute\u POST\u Transactions\u Create()
{
“~/Transactions/”
=>x.Create(null));
}
回答由mvccontrib讨论组提供:
我刚刚发现了一个类似的问题,这个问题比我的问题更具说服力