论坛首页 Java企业应用论坛

用cactus测试servlet(二)

浏览 1945 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-09  
                       
1.  beginXxx()方法

        如果你的测试方法名最终是testRiotHandler,那么你可能编写一个附加的公共方法叫beginRiotHandler()。这个方法就是一般的beginXXX()方法,并且在测试执行
        
    在客户端。beginXXX方法必须接受一个变量---一个org.apache.cactus.WebRequest.WebRequest表示一个客户端请求,ServletTestCase会将其发送到转向器servlet,

    最后被复制到测试安全的请求实例变量中。beginXXX方法实际是用来为这个请求对象增加参数或其他信息的。因为beginXXX执行于另一个与运行在服务器上的测试案例

    不同的拷贝,它惟一与服务器端测试的执行代码的通讯方法就是通过WebRequest.

        还有就是WebRequest定义了若干设置请求状态的方法。比如:addCookie(),addHeader(),addParameter()分别用于增加reqeust的cookie,header和parameter.

    比较重要的是如果在beginXXX方法中调用了setAutomaticSession(false),那么ServletTestCase中的会话实例变量将不被转向实例化,而且对request.getSession(false)

    的调用返回null值。

2.  隐含对象

        Cactus一个主要的特点就是隐含对象作为ServletTestCase的公共成员变量而存在。服务器端方法可以将这些变量作为参数传递到需要它们的被测试的方法中。                 
    ServletTestCase定义了四个隐含对象:request,response,session和config。这些变量在调用setUp()之前被初始化,并只在运行在服务器上的测试案例的拷贝有效(

    它们在客户端为空值,也就是说它们在beginXXX和endXXX方法中为空)。

3.  endXXX()

        ServletTestCase希望子类定义的最后(可选)方法是endXXX().这个方法只有从服务器得到在服务端执行的结果以后才被调用。如果结果中不包含任何失败或错误,

    endXXX()就被调用。

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics