三、如何使用
1、Diffblue Cover:下载链接https://www.diffblue.com/community-edition/download
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始终是必需的依赖项。
如果它们是您项目的可传递依赖项,则可能需要下面列出的依赖项。
如果这些依赖关系中的一种是必需的,但是缺少,则会为某些类生成测试,而不会为其他类生成测试。
一条消息将出现在事件日志中,指示缺少依赖项。
请注意,您只能在一个项目上运行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。
当提示您这样做时,请单击到Restart IDE,然后单击确定OK。
5、汇入 CoreBanking
该CoreBanking应用程序是一个用于演示目的的简单银行应用程序,可以在https://github.com/diffblue/CoreBanking中找到。
在不加载项目的情况下启动IntelliJ以查看欢迎屏幕:
选择Get from Version Control选项。选择Git从版本控制下拉框。CoreBanking在存储库框中输入url,为项目选择合适的位置。然后,单击Clone。
使用Al, Diffblue可以以人 类可读的形式自动编写Java单元测试,覆盖率高达80%,随着代码的发展,即使在具有数百万行代码的应用程序上,它们也可以自动维护测试。
6、编写新测试
为了为当前未涵盖的类生成新的测试:
选择Project窗口。
选择CoreBanking-> src-> main-> java-> io.diffblue.corebanking-> account-> Account
。
右键单击并Write Tests从菜单中选择选项。
成功克隆后,展开下面的CoreBanking部分Project以查看源树。
该插件在分析代码和创建测试之前先构建项目。生成项目后,单击屏幕底部的进度栏以打开一个弹出窗口。
进度窗口将显示分析所经历的不同阶段。在分析代码时,可以查看当前进度,但是在较小的项目(例如)中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'
。
然后将显示JUnit运行的结果:
四、封面示例测试
在本文中,我们将显示输入源和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开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
独家面经总结,超级精彩
本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
1711045641817)]
独家面经总结,超级精彩
本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!
[外链图片转存中…(img-aYMGn8Du-1711045641817)]
[外链图片转存中…(img-etx5otWy-1711045641818)]
[外链图片转存中…(img-aOv5sQf7-1711045641818)]
[外链图片转存中…(img-12OpxAcV-1711045641818)]
Java面试准备
准确的说这里又分为两部分:
- Java刷题
- 算法刷题
Java刷题:此份文档详细记录了千道面试题与详解;
[外链图片转存中…(img-00pZjhLe-1711045641819)]
[外链图片转存中…(img-SL9OBJBJ-1711045641819)]文章来源:https://www.toymoban.com/news/detail-847321.html
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录文章来源地址https://www.toymoban.com/news/detail-847321.html
到了这里,关于Diffblue Cover AI Java:Difflane如何利用Diffblue Cover AI实现Java自动化的单元测试(Diffblue Cover快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!