如何使用MvcContrib.TestHelper测试asp.net mvc post动作

时间:2010-02-01 12:38:27

标签: asp.net-mvc unit-testing routing mvccontrib-testhelper

我正在尝试使用优秀的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类型的参数,我不知道如何将它合并到我的测试中。

我无法找到任何这种性质的例子。

1 个答案:

答案 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