我正在尝试使用优秀的MvcContrib.TestHelper测试我的路由配置,但我遇到了一个问题。
请假设我的路由配置已正确设置并在TestFixture中初始化。
我有一个名为Create的控制器(TransactionsController)动作,它接受一个TransactionRecord类型的输入参数:
[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());
}
我的问题是Create()方法采用TransactionRecord类型的参数,我不知道如何将它合并到我的测试中。
我无法找到任何这种性质的例子。
答案 0 :(得分:2)
由于TransactionRecord是根据帖子数据创建的,只需将null传递给您的测试:
[Test]
public void TestRoute_POST_Transactions_Create()
{
"~/Transactions/".WithMethod(HttpVerbs.Post).ShouldMapTo<Web.Controllers.Tr ansactionsController>(x
=> x.Create(null));
}
回答mvccontrib讨论小组提供的问题: http://groups.google.com/group/mvccontrib-discuss/browse_thread/thread/2839edd5ad3c5258