测试Catalyst URI

时间:2014-02-04 18:47:32

标签: perl testing catalyst

我正在为一个应用程序编写一个测试套件(利用Test :: Class :: Moose; Catalyst :: Test)并且遇到了一些麻烦。我有一个测试,检查我从URL获得成功的响应,然后检查标题。大多数测试都通过了,但是一些URI正在重定向到登录页面。 IE:

如果我通过/ foo / bar,我会得到我期望的标题

                but

如果我传递/ foo / baz,它会重定向到登录页面。 “

(在这两种情况下,我得到了一个成功的响应:200,并且身份验证要求相同)

我的问题是:Catalyst :: Test如何处理用户身份验证?为什么它会通过某些URI而不是其他URI的身份验证检查?在这方面,文档非常模糊,谷歌博士也没有回复任何有用的东西。

注意:代码不是'我的'所以我不能发布它,但我可以根据需要提供抽象示例。

1 个答案:

答案 0 :(得分:1)

使用Catalyst::Test时,request方法可能对您的URI需要身份验证凭据有用。

此方法可以使用HTTP::Request对象,该对象允许您在URI字符串之外设置请求信息。最值得注意的是,如概要中所示,您将需要设置用户代理以支持传递凭据并涵盖诸如持久cookie之类的内容,这可能是会话状态实现。

有关详细信息,请参阅LWP::UserAgent

至于你的问题,考虑为什么某些URI需要身份验证而有些则不需要身份验证,这取决于代码中的设置方式。即使在根控制器中的beginauto操作中存在进行身份验证的一般调用,也可以覆盖调度进程。需要一些时间来消化以下内容可能适用。

Introduction to Catalyst: Built-in actions in controllers/autochaining