右击测试类,选择Junit运行……
输出结果如下:
@BeforeClass
@Before
@Test(timeout = 50)
@After
@Before
@Test(expected = Exception.class)
@After
@Before
@Test
@After
@AfterClass
在eclipse中junit运行结果视图中可以看到testIgnore是被忽略的,没有执行;还有其中有一个方法运行报错。
2. 使用HttpUnit进行Web应用测试:
上面我们介绍Junit是对应用程序代码的片段做测试,那么如何对Web应用进行测试呢?这需要我们了解HttpUnit了。
2.1 什么是HttpUnit:
HttpUnit是SourceForge下面的一个开源项目,它是基于Junit的一个测试框架,主要关注于测试Web应用,解决使用Junit框架无法对远程Web内容进行测试的弊端。HttpUnit通过模拟浏览器的行为,处理页面框架(frames),cookies页面跳转(redirects)等。通过HttpUnit提供的功能,你可以和服务器端进行信息交互,将返回的网页内容作为普通文本、XMLDom对象或者是作为链接、页面框架、图像、表单、表格等的集合进行处理。HttpUnit还提供了一个模拟Servlet容器,让你可以不需要发布Servlet,可以对Servlet的内部代码进行测试。
2.2 如何使用HttpUnit:
到HttpUnit的主页http://httpunit.sourceforge.net下载新的包文件,解压后将%httpunit_home%/lib/*.jar;%httpunit_home%/jars/*.jar加入到Eclipse工程的Javabuild Path变量中。
2.3 如何使用HttpUnit和Junit编写Web应用的测试用例:
在HttpUnit框架中,WebConversation类是重要的类,它用于模拟浏览器的行为,WebRequest类用于模仿客户请求,通过它可以向服务器发送信息,WebResponse类用于模拟浏览器获取服务器端的响应信息。
下面我们用HttpUnit编写一个测试用例,测试在百度里面搜索“诚毅软件”,搜索结果里面有没有包含“我们努力使事情更简单”的内容。
在Eclipse中运行结果中可见在百度里面搜索“诚毅软件”,搜索结果里面有包含“我们努力使事情更简单”的内容。
3. 使用EclEmma进行覆盖测试
3.1 什么是覆盖测试
上面我们介绍了如何用junit和HttpUnit编写单元测试用例,那如何确定我们编写的单元测试用例能不能完整地测试我们的代码呢?这需要看看我们的单元测试用例对我们代码的覆盖测试率了。覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接受测试等繁多的测试之后,我们能不能此对软件的质量产生一定的信心呢?这需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们能对软件的质量有一个合理的信心。
3.2 如何使用EclEmma进行覆盖测试
EclEmm是一个帮助开发人员考察测试覆盖率的的 Eclipse开源插件,EclEmma为用户提供图形界面以及对集成开发环境的支持,安装 EclEmma 插件的过程和大部分Eclipse插件相同,我们既可以通过 Eclipse 标准的 Update 机制来远程安装EclEmma插件,也可以从站点http://sourceforge.net/projects/eclemma/下载 zip文件并解压到eclipse 所在的目录中。安装完成并重新启动 Eclipse 之后,工具栏上应该出现一个新的按钮。