首页 / 知识
自动生成遗留Java代码的单元测试
2023-04-16 11:08:00

Auto-generating Unit-Tests for legacy Java-code什么是最好的,最好是免费/开源的工具,用于自动生成Java单元测试?我知道,单元测试不能真正起到与普通TDD单元测试相同的作用,后者可以记录和驱动系统的设计。但是,如果您拥有庞大的旧版代码库,并且想知道是否需要进行更改,那么自动生成的单元测试可能会很有用。 不是免费的。不是开源的。但是我发现AgitarOne搅拌器(http://www.agitar.com/solutions/products/agitarone.html)确实非常适合自动生成单元测试并查找不必要的晦涩副作用 用于Eclipse的Coview插件(http://www.codign.com/products.html)看起来只是工作。我对生成覆盖代码中所有路径的测试很感兴趣,这似乎可以做到。它还生成了模拟程序,应该可以节省大量时间。 这很有趣,但是这种生成的单元测试实际上是有用的。如果您使用的是旧版应用程序,通常很难编写正确的最新单元测试。 这样生成的测试(当然,如果您有生成它们的方法)可以确保代码行为在更改期间保持不变,这可以帮助您重构代码并编写更好的测试。 现在要生成自己。我不知道任何魔术工具,但是您可能希望搜索有关在Javadocs中包含一些测试方法的JUnit功能。这将允许您编写一些简单的测试。是的,它实际上具有一定的价值。 第二,您可以手动编写" big "测试。当然,这些本身并不是单元测试(没有隔离,潜在的副作用等),但是可能是很好的第一步。尤其是如果您的时间很少并且有旧版应用程序。 奖金提示!有一本很棒的书"有效地处理遗留代码",其中包含Java实例,其中包括在这种情况下可以使用的技术。不幸的是,您必须手动执行某些操作,但是无论如何您都必须在某些步骤中执行该操作。 说实话,我可能不会这样做。单元测试是隔离的,您实际上不会知道自己是否具有"有害的,晦涩的副作用",因为所有内容都与导致副作用的其他因素隔离开来。结果,您需要集成或系统测试,而这不能自动化。 构建一些高级的,端到端的系统测试,这些测试可以给您一定的信心,然后使用覆盖率测试来找出您遗漏的内容,缺点是当出现错误时,它会很难指出它们的确切原因,但好处是您更有可能看到这些错误。 一旦发现错误,就只为它们编写单元测试。继续前进时,可以将TDD用于要重构的位。 我知道这可能不是您想听到的答案,但是我已经进行了很多年的测试,这是一个可靠的方法(尽管我很难将其称为唯一的方法:) > Diffblue Cover是执行此操作的产品,并且有一个免费的Community Edition,它是IntelliJ插件,在这里:https://plugins.jetbrains.com/plugin/14946-diffblue-cover-community-edition --unit-test-generator 它通过强化学习来搜索可能有用的测试的空间,并努力编写类似于人类的测试。它会自动创建模拟并具有完整的Spring / SpringBoot支持。 这是在Spring PetClinic中针对所有者控制器编写的示例测试:
|
最新内容
相关内容
linux命令补全工具?
linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简述Linux中的命令行自动补齐功能1、首先打开LINUX的操作系统,在左边linux系统命令行工具?
linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,Linux:Python编写Linux自定义命令工具state是命令执行结果的状态,rlinux命令下载工具?
linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文件,Linux下多线程下载工具MWget和Axel使用介绍1、wget是linux下一linux好用的命令工具?
linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,Linux系统中进行磁盘管理的常用命令有哪些?分别有什么功能Linux磁linux常用命令行工具?
linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作linux命令行专业工具?
linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命linux命令行执行工具?
linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,shell编程(掌握Linux命令行工具)1、在开始Shell编程之前,我们需要linux命令行执行工具?
linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,shell编程(掌握Linux命令行工具)1、在开始Shell编程之前,我们需要开发linux命令工具?
开发linux命令工具?,系统,工具,环境,状态,平台,设计,数据,电脑,中小企业,标准,Linux界面开发工具有哪些?1、大多数Linux发放版本,自身捆绑了诸linux命令行工具大全?
linux命令行工具大全?,工作,系统,工具,地址,信息,命令,目录,基础,管理,文件,linux常用的命令有哪些linux系统常用操作命令如下:ls:全拼list,功能linux命令联想工具?
linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,Linux:Python编写Linux自定义命令工具首先我们先认识一下cat指令linux命令工具怎么用?
linux命令工具怎么用?,地址,系统,工作,单位,工具,密码,服务,命令,处分,基础,怎样在Win10中使用Linux命令推荐:win10系统下载中文具体如下:首先,点