[测试]将TestCase整合

简介: 在上一篇贴子里,我简单介绍了如何写一个TestCase(MockStrutsTestCase是TestCase的一个子类),可以看到是十分简单的,基本上只要写一些testXXX方法就可以运行了。当我们选择运行这个TestCase的时候,实际上运行的是一个Test,Test是TestCase的接口,实现这个接口的还有TestSuite类,使用这个类可以把多个TestCase一起运行,从而更加自动化。

上一篇贴子里,我简单介绍了如何写一个TestCase(MockStrutsTestCase是TestCase的一个子类),可以看到是十分简单的,基本上只要写一些testXXX方法就可以运行了。当我们选择运行这个TestCase的时候,实际上运行的是一个Test,Test是TestCase的接口,实现这个接口的还有TestSuite类,使用这个类可以把多个TestCase一起运行,从而更加自动化。

要写一个TestSuite更加简单,看一下下面的代码就明白了:

None.gif package edu.pku.cc.democenter.test;
None.gif
None.gifimport junit.framework.Test;
None.gifimport junit.framework.TestSuite;
None.gif
None.gifpublic class AllTests {
None.gif
None.gif    public static Test suite() {
None.gif        TestSuite suite 
=   new  TestSuite( " Test for democenter " );
None.gif        
// $JUnit-BEGIN$
None.gif
        suite.addTest(TestTeacherAction.suite());
None.gif        suite.addTest(TestHibernateDAO.suite());
None.gif        
// $JUnit-END$
None.gif
         return  suite;
None.gif    }
None.gif}
None.gif

当运行这个TestSuite的时候,就会自动对这两个TestCase进行测试。你可能已经看出来了,我们前文中写的TestTeacherAction类中并没有声明suite方法,是的,因此这里就要增加这个静态方法,如下所示:

None.gif public static Test suite() {
None.gif    
return   new  TestSuite(TestTeacherAction.class);
None.gif}
None.gif

我们在这个方法里只是简单的返回一个TestSuite对象,JUnit会根据传递的参数(TestTeacherAction.class)找到这个TestCase中全部的testXXX()方法并运行。

上面这种suite()方法的写法被称为动态方式,即利用了java的反射机制。还可以写成静态方式,这就需要在TestCase里写两个方法了,如下:

None.gif public static Test suite() {
None.gif    TestSuite suite
= new  TestSuite();
None.gif    suite.addTest(
new  TestTeacherAction());
None.gif    
return  suite;    
None.gif}
None.gif
None.gifprotected 
void  runTest() throws Throwable {
None.gif    testListTeacherAction();
None.gif    testEditTeacherAction();
None.gif    testSaveTeacherAction();
None.gif}
None.gif

这种方式允许用户选择执行某些testXXX()方法,而且这些方法也不一定以test开头,反正只要在runTest()里指定的都给执行。而suite()方法与动态方式比也有变化。要注意的是,如果按动态方式写suite()就不要再覆盖runTest()方法了,我实验后发现,这样会造成runTest()中指定的方法被反复执行n次,其中n等于textXXX()方法的数目。

另外一点,关于JUnite对Test的计数,在动态方式下,JUnit是按照testXXX()的数目计数的;而在静态方式下,是按照TestCase的数目计数的。

还有一点很重要,动态方式下,setUp()和tearDown()这两个方法是在每个testXXX()方法的前后执行;而静态方式下,是在每个TestCase的前后执行,也就是说,同一个TestCase中两个测试方法之间可能不会经过tearDown()和setUp()的过程。

至于动态方式和静态方式的选择,可以根据上面所说的进行参考。不过先声明,以上都是我自己测试得到的结论,存在出现错误的可能性(欢迎告知),以及没有涉及到的方面。

我本人比较prefer动态方式,毕竟代码量小一些


本文转自博客园八进制的博客,原文链接:[测试]将TestCase整合,如需转载请自行联系原博主。

相关文章
Junit测试中找不到junit.framework.testcase
在使用Junit进行测试时,出现如下问题: 找不到junit.framework.testcase  解决方法: 选中项目->属性->Java构建路径->库->添加外部jar 在eclipse的安装目录中找到 eclipse/plugins/org.junit_3.8.1/junit.jar 添加上就可以了。
2292 0
|
21天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
99 7
Jmeter实现WebSocket协议的接口测试方法
|
21天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
97 3
快速上手|HTTP 接口功能自动化测试
|
21天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
2月前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
|
3月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
128 5
Postman 接口测试配置 Pre-request Script
|
2月前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
55 1
|
2月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
41 0
精通Postman接口测试:关联技术与自动化实践指南
下一篇
无影云桌面