介绍 10 个出色的测试框架, 工具和库, 以提高您的自动化测试技能.
最近, 我写了一些关于 Java 开发人员今年应该学习什么的文章, 但如果你只有一件事需要改进或学习, 那么那必须是你的自动化测试技能.
测试是将专业开发人员与业余开发人员分开的学科之一. 它不是关注 TDD,BDD 或任何测试方法, 但在最低级别, 您必须编写代码来自动测试代码.
许多 Java 开发人员编写在构建期间自动运行的 和集成测试, 主要是使用 或 TeamCity 等持续集成工具.
如果你们中的一些人想知道为什么程序员应该专注于自动化测试, 那么让我告诉你, 由于更多的意识和 DevOps 的出现, 自动化测试的重要性呈指数级增长.
公司通常更喜欢擅长编写单元测试并且熟悉各种单元测试框架, 库和工具的程序员, 例如 , ,REST-Assured, 等.
作为 Java 开发人员, 我们处理非常不同的领域, 从编写核心 Java 代码到创建 JSP 页面, 编写 , 有时甚至创建用于构建自动化的 Groovy 脚本. 这就是为什么我们还需要了解我们可以用来自动化测试的不同工具.
例如, 我只知道 JUnit 很长一段时间, 但是当我不得不测试我的 JSP 页面时, 在找到 Selenium 之前我一无所知. REST Assured 也是如此, 因为我通常使用 测试我的 REST API , 但 REST Assured 将 REST API 的单元测试提升到另一个级别.
10 个适用于 Java 程序员的有用单元和集成测试工具
由于我相信程序员和他们的工具一样好, 我总是在空闲时间尝试学习和探索新的工具和库, 这个列表是该研究的一部分.
在本文中, 我将分享 10 个最好的和必不可少的 , 和库, 它们可以帮助 Java 开发人员在各种 Java 项目上编写单元测试和集成测试.
1. JUnit
我不认为 JUnit 需要任何介绍. 即使您是初学 Java 程序员, 您也可能听说过它. 它允许您为 Java 代码编写单元测试.
几乎所有主要的 IDE(例如 , 和 )都提供 JUnit 集成, 这意味着您可以直接从这些 IDE 编写和运行单元测试.
我们大多数人仍在使用 JUnit 4, 但 JUnit 5 已经发布, 可能是今年要看的下一个东西. 您可以将 JUnit 用于单元测试和集成测试, 它还支持 Java 8 功能.
2. REST Assured
在 Java 中测试和验证 REST 服务比在 等动态语言中更难.
REST Assured 将使用这些语言的简单性带入了 Java 域. 它是 REST API 集成测试的绝佳工具.
3. Selenium
Selenium 可能是最流行的 Java UI 测试工具, 它允许您测试 而无需在浏览器中启动它们.
您可以使用 JUnit 和 Selenium 测试 web 应用程序 UI. 它甚至允许您编写 Web 应用程序验收测试.
4. TestNG
TestNG 是一个受 JUnit 和 NUnit 启发的测试框架, 但引入了许多新功能, 使其功能更强大, 更易于使用, 例如 , 在任意大线程池中运行测试, 并提供各种策略(所有方法都在自己的线程中, 一个每个测试类的线程等).
由于使用了 JUnit 4 中的注释并集成了 Hamcrest 匹配器, JUnit 和 TestNG 之间的差距已经缩小, 但这取决于您.
5.Mockito
Java 类有许多模拟框架, 例如 PowerMock 和 JMock, 但我个人喜欢 的简单 API, 很棒的文档和很多例子.
模拟是现代单元测试的基本技术之一, 因为它允许您在没有任何依赖性的情况下单独测试代码, 这就是为什么我鼓励每个 Java 开发人员与 一起学习模拟框架.
我最喜欢的模拟框架是 Mockito, 但如果你愿意, 你也可以探索 PowerMock 或 JMock.
6. Spock 框架
Spock 是 和 应用程序的另一个测试和规范框架. 它是用 Groovy 编写的, 这使它成为一种非常富有表现力和规范的规范语言.
当您使用 Spock 时, 您的测试将变得更易读并且更易于维护, 并且由于其 JUnit 运行程序, Spock 与大多数 IDE, 构建工具和持续集成服务器兼容.
7. Cucumber
Cucumber 是自动化集成测试的另一个很好的工具, 但是它与同类别中的其他工具的不同之处在于它的规范功能.
Cucumber 将规范和测试文档合并为一个统一的整体生活文档, 由于它们将由 Cucumber 自动测试, 因此您的规范始终是最新的.
8. Spring Test
Spring MVC 带有一个非常有用的测试框架, 允许在不涉及 情况下进行深入测试.
它是向 Spring 应用程序编写自动化测试的最有用的库之一. 它为 Spring 驱动的应用程序(包括 编写单元和集成测试提供了一流的支持.
还有一个 Spring Test DbUnit 将 Spring Test 框架与 DbUnit 和 Spring Test MVC htmlUnit 集成在一起, 它将 Spring Test MVC 框架与 HtmlUnit 集成在一起.
通过使用这些工具, 您可以轻松地以自动方式测试 .
9. DBUnit
数据库是许多 Java 应用程序 (核心 Java 和 Web 应用程序) 不可或缺的一部分, 可能是进行单元测试时的最大障碍.
连接到 Dev 或 UAT 数据库进行集成测试是不可靠的, 因为任何人都可以更改数据和模式, 例如表和 , 这将导致自动集成测试失败.
DbUnit 是一个 JUnit 扩展, 可用于在每次集成测试之前将数据库初始化为已知状态, 以确保数据库包含正确的数据.
DbUnit 有自己的问题, 但它是一个非常有用的工具, 因为它可以帮助我们将测试数据创建与测试代码分开.
10. Robot 框架
Robot Framework 是一个基于 的通用测试自动化框架, 用于验收测试和验收测试驱动开发.
它是一个关键字驱动的测试框架, 使用表格测试数据语法. 您可以使用它来测试分布式异构应用程序, 其中验证需要涉及多种技术和接口.
结论
这就是 Java 开发人员的一些基本单元测试和集成测试工具, 框架和库的全部内容.
我还没有列入更多的库, 例如 AssertJ 和 Hamcrest, 它们可以帮助你编写漂亮和流畅的测试 - 但是要慢慢来.
首先, 学习一种可以在日常工作中使用的工具或库. 例如, 如果您正在使用 Java UI, 那么您应该首先学习 Selenium, 因为那样您可以更多地关注这个工具.
来源: http://news.51cto.com/art/201902/592362.htm