在我的Asp.net MVC应用程序中,我有两个方法在控制器上,一个用于当用户第一次到达视图时,然后一个当他们在所述视图上提交表单。mvccontrib测试助手和验证http发布路线和参数
public ActionResult Foo() {}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Foo(string id, Account accountToFoo) {}
在第二个动作,有是一个的组装我作用于该帐户对象的自定义模型粘合剂,尽管这真的并不重要。这一切都可以在服务器本地进行测试。
我们试着编写单元测试来测试我们所有不同的视图正确地路由到哪里,包括那些HTTP POST。为此,我们一直在使用mvccontrib的测试助手。
测试被一直超级简单
"~/account/foo/myusername".
Route().
ShouldMapTo<AccountController>(c => c.Foo("myusername"));
我的问题是在测试邮路,我怎么写,我会使用验证后正在接受正确的值,类似于上面的GET测试拉姆达?
一个职位,它看起来是这样的:
"~/account/foo".
WithMethod(HttpVerbs.Post).
ShouldMapTo<AccountController>(a => something_something);
这是我的拉姆达是我遇到的麻烦的something_something部分。使用任意值不起作用(“a => a.Foo(0,new Account()”)。我如何指定期望值作为测试的一部分?
编辑我希望有人类似于Moq对foo.Setup(s => s.Foo(It.IsAny(),It.Is(i => i> 32))等语句使用lambda表达式的方式,即使我必须明确。提供的值,这是可行的 - 我似乎无法神交所需的结构来传递这些明确的价值观
你有没有解决过这个问题? – Paul 2010-02-01 13:27:00
没有,从来没有 - 和我的新应用程序的其他部分分心,单元测试这些特定的POST行动落在了一边。仍然很想知道如何最好地解决这个问题。 – bakasan 2010-02-02 09:40:19