Diffblue Cover AI Java:Difflane如何利用Diffblue Cover AI实现Java自动化的单元测试(Diffblue Cover快速入门

这篇具有很好参考价值的文章主要介绍了Diffblue Cover AI Java:Difflane如何利用Diffblue Cover AI实现Java自动化的单元测试(Diffblue Cover快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

diffblue cover,2024年程序员学习,java,自动化,单元测试

三、如何使用

1、Diffblue Cover:下载链接https://www.diffblue.com/community-edition/download

diffblue cover,2024年程序员学习,java,自动化,单元测试

2、关于Cover IntelliJ插件

有两个Diffblue IntelliJ插件-完整的Cover IntelliJ插件和Cover Community Edition IntelliJ插件。Cover Community Edition是免费的,可以用于开放源代码项目;Cover的完整(收费)版本可用于任何项目,并获得Diffblue的全面支持。

下面和知识库中的文档介绍了此版本,并提供了完整的支持。

要获得免费的Community Edition Cover IntelliJ插件,请转到下载 页面。下面和知识库中的文档涵盖了此版本,但也可能包含Community Edition中不可用的功能。社区支持可从社区论坛获得。

3、先决条件

IntelliJ版本2019.3或更高版本

Java 8或11源代码

基于Maven或Gradle的项目

2 GB最小存储器要求(修订本中的IntelliJ,选择Help然后Change Memory Settings)

您的项目必须编译并运行

Diffblue Cover将运行它为您的代码编写的测试,因此您的项目必须编译并运行,以使Cover正常工作。

您的项目配置(例如,pom.xml对于Maven项目)必须包括所有必需的依赖项,并且它们都必须已经构建或下载(例如,通过mvn clean install对Maven项目进行构建)。

JUnit始终是必需的依赖项。

diffblue cover,2024年程序员学习,java,自动化,单元测试

如果它们是您项目的可传递依赖项,则可能需要下面列出的依赖项。

如果这些依赖关系中的一种是必需的,但是缺少,则会为某些类生成测试,而不会为其他类生成测试。

一条消息将出现在事件日志中,指示缺少依赖项。

diffblue cover,2024年程序员学习,java,自动化,单元测试

请注意,您只能在一个项目上运行Cover IntelliJ插件的一个实例。不支持在同一项目上运行多个实例。

4、安装Cover IntelliJ插件

如果您不是直接从JetBrains市场安装,则将zip文件下载到合适的位置。

从IntelliJ IntelliJ IDEA -> Preferences(macOS)或File -> Settings(Windows / Linux)菜单中选择Plugins项目。

单击Installed窗口顶部选项卡右边的齿轮图标。从下拉菜单中选择Install Plugin from Disk…

导航到插件的位置,选择zip文件,然后单击Open。点击OK。

diffblue cover,2024年程序员学习,java,自动化,单元测试

当提示您这样做时,请单击到Restart IDE,然后单击确定OK。

5、汇入 CoreBanking

该CoreBanking应用程序是一个用于演示目的的简单银行应用程序,可以在https://github.com/diffblue/CoreBanking中找到。

在不加载项目的情况下启动IntelliJ以查看欢迎屏幕:

diffblue cover,2024年程序员学习,java,自动化,单元测试

选择Get from Version Control选项。选择Git从版本控制下拉框。CoreBanking在存储库框中输入url,为项目选择合适的位置。然后,单击Clone。

diffblue cover,2024年程序员学习,java,自动化,单元测试

使用Al, Diffblue可以以人 类可读的形式自动编写Java单元测试,覆盖率高达80%,随着代码的发展,即使在具有数百万行代码的应用程序上,它们也可以自动维护测试。

6、编写新测试

为了为当前未涵盖的类生成新的测试:

选择Project窗口。

选择CoreBanking-> src-> main-> java-> io.diffblue.corebanking-> account-> Account

右键单击并Write Tests从菜单中选择选项。

成功克隆后,展开下面的CoreBanking部分Project以查看源树。

diffblue cover,2024年程序员学习,java,自动化,单元测试

该插件在分析代码和创建测试之前先构建项目。生成项目后,单击屏幕底部的进度栏以打开一个弹出窗口。

进度窗口将显示分析所经历的不同阶段。在分析代码时,可以查看当前进度,但是在较小的项目(例如)中CoreBanking,这是一个非常短的时间范围。

创建新测试后,它们将被自动集成到项目中src/test/java。

请注意,也可以Write Tests通过右键单击以下内容:

源代码编辑器中的各个类

源代码编辑器中的各个方法

源文件顶部的选项卡中的各个类 Project菜单中其类内的各个方法(如果Show Members右键单击Project菜单后已选择)

在IDE的其他地方(例如在测试类或非Java文件中),该Write Tests功能被禁用。

7、运行测试

在Diffblue Cover为您的项目编写测试之后,它们将自动集成到您的测试套件中。Diffblue Cover创建的测试使用JUnit测试框架,因此junit包含在的CoreBanking项目依赖项中pom.xml。

在项目浏览器中,从CoreBanking-> src-> test-> java-> io.diffblue.corebanking-> ->中选择新类AccountTest,然后右键单击并选择Run 'AccountTest'

diffblue cover,2024年程序员学习,java,自动化,单元测试

然后将显示JUnit运行的结果:

diffblue cover,2024年程序员学习,java,自动化,单元测试

四、封面示例测试

在本文中,我们将显示输入源和Cover生成的各种复杂性代码的测试,并附有详细的叙述,以帮助您进一步了解Cover生成的测试。

1、基本断言

这是一个带有简单getter的Spring Service源代码的简单示例。DCover可以通过内联写一个春天开机测试的服务提供商,吸气Arrange,Act和Assert。

1.1、来源

import org.springframework.stereotype.Service;

@Service

public class SimpleService

{

public String getValue() {

return “a really simple service”;

}

}

1.2、 Diffblue Cover产生的测试

@SpringBootTest

@RunWith(org.springframework.test.context.junit4.SpringRunner.class)

public class SimpleServiceDiffblueTest {

@Autowired

private SimpleService simpleService;

@Test

public void testGetValue() {

// Arrange, Act and Assert

assertEquals(“a really simple service”, this.simpleService.getValue());

}

}

2、模拟

此类包含两个方法,用于从Amazon S3存储桶上传文件和从Amazon S3存储桶下载文件。由于Amazon S3存储桶是一种云存储机制,因此此类/方法的测试需要依赖项注入。downloadFileFromBucket通过声明所需的S3Object和使用该方法下载的S3Object,DCover可以模拟这些类型的依赖关系并测试方法。

2.1、来源

@Service

public class AmazonService {

@Autowired

private AmazonS3 s3client;

public PutObjectResult uploadFileToBucket(String bucketName, String key, File file) {

return s3client.putObject(bucketName, key, file);

}

public S3Object downloadFileFromBucket(String bucketName, String key) {

return s3client.getObject(bucketName, key);

}

}

2.2 、Diffblue Cover生成的测试

@SpringBootTest

public class AmazonServiceDiffblueTest {

@MockBean

private AmazonS3Client amazonS3Client;

@Autowired

private AmazonService amazonService;

@Test

public void testUploadFileToBucket() {

// Arrange

PutObjectResult putObjectResult = new PutObjectResult();

putObjectResult.setContentMd5(“file-hash”);

when(this.amazonS3Client.putObject(or(isA(String.class), isNull()), or(isA(String.class), isNull()),

or(isA(File.class), isNull()))).thenReturn(putObjectResult);

// Act and Assert

assertSame(putObjectResult, this.amazonService.uploadFileToBucket(“foo”, “foo”,

Paths.get(System.getProperty(“java.io.tmpdir”), “test.txt”).toFile()));

}

@Test

public void testDownloadFileFromBucket() throws UnsupportedEncodingException {

// Arrange

StringInputStream objectContent = new StringInputStream(“file-name”);

S3Object s3Object = new S3Object();

s3Object.setObjectContent(objectContent);

when(this.amazonS3Client.getObject(or(isA(String.class), isNull()), or(isA(String.class), isNull())))

.thenReturn(s3Object);

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
diffblue cover,2024年程序员学习,java,自动化,单元测试
diffblue cover,2024年程序员学习,java,自动化,单元测试
diffblue cover,2024年程序员学习,java,自动化,单元测试

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
diffblue cover,2024年程序员学习,java,自动化,单元测试

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

diffblue cover,2024年程序员学习,java,自动化,单元测试

diffblue cover,2024年程序员学习,java,自动化,单元测试

diffblue cover,2024年程序员学习,java,自动化,单元测试

diffblue cover,2024年程序员学习,java,自动化,单元测试

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

diffblue cover,2024年程序员学习,java,自动化,单元测试

diffblue cover,2024年程序员学习,java,自动化,单元测试

1711045641817)]

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

[外链图片转存中…(img-aYMGn8Du-1711045641817)]

[外链图片转存中…(img-etx5otWy-1711045641818)]

[外链图片转存中…(img-aOv5sQf7-1711045641818)]

[外链图片转存中…(img-12OpxAcV-1711045641818)]

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

[外链图片转存中…(img-00pZjhLe-1711045641819)]

[外链图片转存中…(img-SL9OBJBJ-1711045641819)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录文章来源地址https://www.toymoban.com/news/detail-847321.html

到了这里,关于Diffblue Cover AI Java:Difflane如何利用Diffblue Cover AI实现Java自动化的单元测试(Diffblue Cover快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 打工人如何利用自动化实现职场突围

    作为优秀的打工人,如果可以将办公中的 重复性、繁琐性、低效性工作自动化 ,那么将省去许多日常工作。许亚宁就是这样一个优秀的打工人,善于使用各类自动化工具来提升工作效率,上周的直播他分享了如何利用自动化工具,实现 自动化办公 的最佳实践。如果你错过了

    2024年02月16日
    浏览(38)
  • ​无需测试环境!如何利用测试脚手架隔离微服务,实现功能自动化

    想在不建立完整测试环境的情况下测试微服务? 想在将变更推送到主线分支之前完成测试? 这是我们在进行项目交付时经常遇到的难题。最近,当我们开始一个新的项目,为客户构建一个新的聚合平台时,我们希望将尽可能多的测试和自动化转移到流程的合并前执行。 我们

    2024年02月10日
    浏览(44)
  • AI绘画 | 如何利用SD垫图实现照片风格转换

    “ 小红书上有很多用AI做卡通头像的,大概思路是你拍一张个人照片发给博主,博主利用midjourney的垫图功能转换成卡通形象,一张收取一定费用…… ” 看过之前文章的人都应该知道,midjourney是付费的软件,而且需要一定魔法上网能力。 今天给大家分享,利用Stable Diffusion(

    2024年04月12日
    浏览(28)
  • 【Java】接口自动化测试是什么,如何实现?

    接口自动化测试是一种自动检查接口功能、性能和可靠性的测试方法。它可以帮助开发人员快速发现接口中的问题,提高开发速度和质量。 接口自动化测试的实现主要包括以下几个步骤: 选择合适的工具:首先,你需要选择一个合适的自动化测试工具,如Postman、JMeter、Res

    2024年02月08日
    浏览(35)
  • JAVA如何利用接口实现多继承问题

    hello,上文带大家学习了java中类的继承,我们可以创建一个父类,将类中的共性抽取出来,通过子类继承的方式来实现代码的复用。今天带大家学习不同类之间的另外几种关系,即多态抽象类和接口。 多态,从字面意思去形象的理解可以解释为:针对不同的对象执行某一行为

    2024年03月08日
    浏览(21)
  • java如何利用框架实现实体变为json格式

    Java中可以通过多种框架实现将实体类转换为JSON格式的字符串,常用的有以下几种: Jackson:Jackson是一个功能强大的JSON框架,可以将Java对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为Java对象。 使用Jackson将Java对象转换为JSON字符串,可以使用以下代码: 其中,

    2024年02月06日
    浏览(46)
  • OpenAI开发系列(十五):AI敏捷开发的新范式:利用大模型优化和自动化应用开发流程(上)

    授权声明: 本文基于九天Hector的原创课程资料创作,已获得其正式授权。 原课程出处:九天Hector的B站主页,感谢九天Hector为学习者带来的宝贵知识。 请尊重原创,转载或引用时,请标明来源。 全文共5000余字,预计阅读时间约30~50分钟 | 满满干货(附代码),建议收藏! 本文

    2024年02月03日
    浏览(34)
  • chatgpt赋能python:如何利用Python进行自动化办公

    在现代办公环境中,自动化成为了一种趋势。利用计算机程序自动处理重复性劳动,可以提高生产效率和工作质量,同时也能够让工作更加轻松。Python作为一种常用的编程语言,在自动化办公中发挥了重要作用。 自动化办公是指利用计算机程序自动完成办公工作的一种方式。

    2024年02月11日
    浏览(37)
  • 如何利用GitHub Actions自动化你的开发流程

    GitHub Actions 是一个强大的自动化工具,可以帮助开发者在 GitHub 仓库中自动化构建、测试和部署工作流程。使用 GitHub Actions,你可以在代码提交到 GitHub 时自动运行软件开发工作流程。以下是如何利用 GitHub Actions 自动化你的开发流程的基本步骤: ### 1. 理解 GitHub Actions 的基本

    2024年04月29日
    浏览(31)
  • 如何利用自动化和智能化技术提高仓储行业效率?

    仓储行业作为物流领域的重要环节,其效率的提升对于整个供应链的顺畅运作至关重要。自动化和智能化技术的引入,为仓储行业带来了革命性的变革。 一 . 自动化技术的应用 自动化仓储系统 通过引入自动化仓储系统,如高架叉车、自动化立体仓库等,实现货物的快速、

    2024年03月23日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包