java 单元测试培训_Java学习——单元测试JUnit

Java学习——单元测试JUnit

摘要:本文主要介绍了什么是单元测试以及怎么进行单元测试。

部分内容来自以下博客:

https://www.cnblogs.com/wxisme/p/4779193.html

https://www.cnblogs.com/happyzm/p/6482886.html

什么是JUnit

JUnit是一个简单的可复用的测试框架,是xUnit测试框架的一个子集。

为什么使用JUnit

使用JUnit能够帮助我们减少在开发过程中的错误,把Bug扼杀在萌芽之中,有利于代码的后期维护和检查。做好了单元测试可以缩短开发周期,提高代码质量。这样我们就可以把更多的时间用到我们应该干的事情上来而不是去解决项目后期发现的越来越多的令人头疼的问题。

测试不是用来证明你是对的,而是用来证明你没有错。

使用JUnit4

新建项目

新建一个名为JUnitTest的项目,为了规范代码,我们创建一个同src这个源码包相同的test包,使其目录结构同src一致。

543523781f6720fddc38b70c826347fc.png

导入依赖jar包

在当前项目上右键,选择Properties。

3f85955b43de789b3ffcd216364d60f6.png

在弹出的属性窗口中,选择“Java Build Path”,然后选择“Libraries”,点击右侧的“Add Library...”。

df87a491db9e9523b16976fbd274352a.png

在弹出的页面中选择JUnit,然后点击下一步。

992a9bb1483c1d25a727b78ea30c87e4.png

在弹出的页面选择JUnit4,然后Finish,最后在属性页中点OK,之后JUnit的jar包就被包含到我们的项目里了。

生成JUnit测试框架

在创建好的Calculator类上右键,然后选择New,选择Other...。

fdf36ba3dd60e06a16d4ab53c5a90ec3.png

在弹出的窗口中找到JUnit Test Case,点击Next。

33f7326e22f3c61346d06fe8c2b805ac.png

在弹出的窗口中设置一下Source folder,改为之前创建的test源码包,然后Finish。

88470479d19cc2e47cbedaa7e5b30b35.png

选择刚刚创建的Calculator类里的方法,然后Finish。

5702e57631dd96c7409f9e9b4283c610.png

会看到在test源码包里面自动生成了一个测试类。

47e30162dd91a98d0f2ac829a5286f8e.png

对生成的测试类稍加改动,使用JUnit提供的方法Assert.assertEquals(3, calculator.add(1, 2));判断预期结果和程序的输出结果是否是一致。

1b89ea948bd4d209f8c6c31301192782.png

在testAdd()方法上右键,选择Run As,然后JUnit Test,运行结果如下。

878a1efc3f745f566633b3938e40d041.png

展示了与测试有关的折衷考虑,这样您就能在测试什么和怎么测试方面做出更好的决定。 介绍了TestNG,说明了它的目标和功能,并展示了如何在真实的环境中应用这些功能。 展示了如何集成TestNG和已有的代码、开发框架以及软件库。 展示了如何测试关键代码的特征,如封装、共享状态、范围和线程安全。 展示了如何测试应用程序元素,包括Java EE APls、数据库、Web页面和XML文件。 展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的测试设计模式都会告诉您如何改进您的测试,对如何让代码和设计变得更可测试提供具体的建议。 目录: 第1章 起步 1.1 超越JUnit 3 1.2 JUnit 4 1.3 针对可测试性而设计 1.4 TestNG 1.5 本章小结 第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 2.8 依赖的测试 2.9 继承和annotation范围 2.10 测试分组 2.11 代码覆盖率 2.12 本章小结 第3章 企业级测试 3.1 典型企业级场景 3.2 一个具体例子 3.3 测试实现 3.4 探索竞争消费者模式 3.5 重构的作用 3.6 本章小结 第4章 Java EE测试 4.1 容器内测试与容器外测试的对比 4.2 容器内测试 4.3 Java命名和目录接口(JNDI) 4.4 Java数据库连接(JDBC) 4.5 Java事务API(JTA) 4.6 Java消息服务(JMS) 4.7 Java持久API(JPA) 4.8 Enterprise JavaBeans 3.0(EJB3) 4.9 Java API for XML Web Services(JAX-WS) 4.10 Servlets 4.11 XML 4.12 本章小结 第5章 集成 5.1 Spring 5.2 Guice 5.3 DbUnit 5.4 HtmlUnit 5.5 Selenium 5.6 Swing UI测试 5.7 针对画图代码的测试 5.8 持续集成 5.9 本章小结 第6章 扩展TestNG 6.1 TestNG API 6.2 BeanShell 6.3 方法选择器 6.4 Annotation转换器 6.5 报告 6.6 编写自定义Annotation 6.7 本章小结 第7章 闲言碎 7.1 动机 7.2 TestNG哲学 7.3 关注和提供异常 7.4 有状态的测试 7.5 测试驱动开发的缺点 7.6 测试私有方法 7.7 测试与封装 7.8 调试器的威力 7.9 记日志的最佳实践 7.10 时间的价值 7.11 本章小结 附录A IDE集成 附录B TestNG JavaDoc 附录C testng.xml 附录D 从JUnit迁移
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值