使用MvcApprovals进行Nunit测试验证特定网址

时间:2015-01-07 13:59:12

标签: asp.net-mvc url nunit url-routing approval-tests

我的mvc应用程序的项目URL像这个localhost:port / AppName

一样托管

我创建了一个新的单元测试项目,使用nunit框架测试mvc app,并使用Approval Tests Library进行审批测试

[Test]
    [UseReporter(typeof(FileLauncherReporter),typeof(ClipboardReporter))]
    public void PaymentPopUpController_IndexView()
    {
        //Arrange
        PortFactory.MvcPort = 8080;
        // Act      
        Func<ActionResult> ScopeControllerTest = new ScopeController()._Index;

        // Approve
        MvcApprovals.VerifyMvcPage(ScopeControllerTest);
    }

MvcApprovals.VerifyMvcPage抛出错误,说它无法找到网址,因为我没有设置正确的项目网址:

  

连接到以下时出现以下错误:

     

http:// localhost:8080 / Scope / _index

     

错误:

     

远程服务器返回错误:(404)Not Found。

所以我的问题是如何设置正确的URL以使用nunit进行mvc批准测试

1 个答案:

答案 0 :(得分:0)

MvcApprovals将根据Controller名称+方法名称的组合构建网址。 所以在这种情况下,新的ScopeController()._ Index正在被翻译成 范围/ _index

为什么这不起作用有两种可能性

1)糟糕的网址。可能_index不公开或其他不正确的路线。最简单的测试方法是打开Web浏览器并将其指向

http://localhost:8080/Scope/_index

如果您的浏览器无法看到此网址,则无法进行审核。 (除非你使用cassinidev)

2)第二个原因是您可能没有在测试期间打开Web服务器。这也可以通过在浏览器中打开网址来显示。

快乐测试!

Llewellyn Falco