首页 > 解决方案 > 用于在 ASP.NET MVC5 中检查验证码的控制器方法的单元测试

问题描述

在我的 ASP.NET MVC 5 Web 应用程序中,有一种方法可以从 Web 表单中检查验证码。我使用 CaptchaMVC MVC5。这是该方法的外观:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Foo(MyModel model){
    if(ModelState.IsValid){
        if(this.IsCaptchaValid("Error msg")){
            //do something
        }
    }
    var mod = this.GetMyModel();
    return this.View("Index", mod);
}

现在我想为这个方法写一个单元测试。但不幸的是,验证码无效。这是我的单元测试目前的样子:

[TestMethod]
public void TestFoo()
{
    var myMod = new MyModel();
    srvcModl.val1 = "0123456789";
    var controller = new MyController();

    var result = controller.foo(myMod);
    Assert.IsNotNull(result);
}

由于验证码无效,我的测试方法也失败了。有没有办法在测试方法中将验证码设置为有效?

标签: c#asp.net-mvcunit-testingcaptcha

解决方案


推荐阅读