spock

unit testing ListenableFuture kafkaTemplate.send always returns null

吃可爱长大的小学妹 提交于 2020-04-18 05:50:54
问题 I'm trying to unit test the callbacks from the kafkaTemplate.send() but its not working as expected. here's the code snippet of the code im trying to test. @Override public void sendMessage(String topicName, String message) { ListenableFuture<SendResult<String, String>> future = kafkaTemplate.send(topicName, message); future.addCallback(new ListenableFutureCallback<SendResult<String, String>>() { @Override public void onSuccess(SendResult<String, String> result) { System.out.print("Success")

unit testing ListenableFuture kafkaTemplate.send always returns null

我的未来我决定 提交于 2020-04-18 05:50:39
问题 I'm trying to unit test the callbacks from the kafkaTemplate.send() but its not working as expected. here's the code snippet of the code im trying to test. @Override public void sendMessage(String topicName, String message) { ListenableFuture<SendResult<String, String>> future = kafkaTemplate.send(topicName, message); future.addCallback(new ListenableFutureCallback<SendResult<String, String>>() { @Override public void onSuccess(SendResult<String, String> result) { System.out.print("Success")

推荐10款Java程序员使用的单元测试工具

拟墨画扇 提交于 2020-03-13 00:58:50
前言 随着DevOp的不断流行,自动化测试慢慢成为Java开发者的关注点。因此,本文将分享10款优秀的单元测试框架和库,它们可以帮助Java开发人员在其Java项目上编写单元测试和集成测试。 1. JUnit 我绝对 JUnit 不需要太多的介绍了。即使您是Java初学者,也可能听说过它。它可以帮助您为Java代码编写单元测试。 几乎所有主要的IDE(例如Eclipse,NetBeans和 IntelliJIDEA )都提供JUnit集成,这意味着您可以直接从那些IDE编写和运行单元测试。 我们大多数人仍在使用JUnit 4,但 JUnit 5 已经发布。您可以将JUnit用于单元测试和集成测试,它还支持 Java 8 功能。 2. REST Assured REST Assured 是github上一个开源项目。 项目地址: https://github.com/rest-assured/rest-assured 优点: 简约的接口测试DSL 支持xml json的结构化解析 支持xpath jsonpath gpath等多种解析方式 对spring的支持比较全面 3.Selenium Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla

推荐10款Java程序员使用的单元测试工具

[亡魂溺海] 提交于 2020-02-28 09:25:02
前言 随着DevOp的不断流行,自动化测试慢慢成为Java开发者的关注点。因此,本文将分享10款优秀的单元测试框架和库,它们可以帮助Java开发人员在其Java项目上编写单元测试和集成测试。 1. JUnit 我绝对 JUnit 不需要太多的介绍了。即使您是Java初学者,也可能听说过它。它可以帮助您为Java代码编写单元测试。 几乎所有主要的IDE(例如Eclipse,NetBeans和 IntelliJIDEA )都提供JUnit集成,这意味着您可以直接从那些IDE编写和运行单元测试。 我们大多数人仍在使用JUnit 4,但 JUnit 5 已经发布。您可以将JUnit用于单元测试和集成测试,它还支持 Java 8 功能。 2. REST Assured REST Assured 是github上一个开源项目。 项目地址: https://github.com/rest-assured/rest-assured 优点: 简约的接口测试DSL 支持xml json的结构化解析 支持xpath jsonpath gpath等多种解析方式 对spring的支持比较全面 3.Selenium Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla

Java 程序员必备的10款开源工具

不打扰是莪最后的温柔 提交于 2020-02-26 13:11:45
Java世界中存在许多工具,从Eclipse,NetBeans和IntelliJ IDEA等著名的IDE开始到Java开发人员应该知道的JVM分析和监视工具,如JConsole,VisualVM,Eclipse Memory Analyzer等。 如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是,现在就是是开始学习这些工具的好时机。 在本文中,我将重点介绍适用于各种Java开发人员的通用工具,例如核心Java 开发人员和Web开发人员。 1. JIRA Atlassian的JIRA是当前敏捷开发领域最重要的工具之一。它用于错误跟踪,问题跟踪和项目管理。如果你遵循敏捷开发方法,例如Sprint和Scrum,那么你必须了解JIRA。它允许您创建Spring循环并跟踪软件开发的进度。 JIRA 是目前比较流行的基于Java架构的管理系统,由于Atlassian公 司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。 2. Git Git是Java程序员的另一个必备工具,它是一个免费的开源分布式版本控制系统,旨在快速高效地处理从很小到非常大的项目版本管理。Git易于学习,占用空间小,具有超强的性能。 最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是发现已经在很多其他自由软件项目中也使用了

面向Java开发人员的十种测试框架库

泪湿孤枕 提交于 2020-02-26 03:14:17
【51CTO.com快译】引言:您想提升自己的自动化测试能力吗?这里为您提供了10款优秀的测试框架库,以及它们的***用例。 测试能力可谓是鉴别专业开发人员与业余新手的利器。它不仅体现在是否能遵循TDD(Test-Driven Development,测试驱动开发)、BDD(Behavior-Driven Development,行为驱动开发)或其他任何测试方法,而且反映了您是否具有编写出能够自动测试软件代码的能力。 如今,许多Java开发人员主要通过使用持续集成的工具(如Jenkins或TeamCity),编写出会在构建时就能自动运行的各种单元与集成测试程序。 如果在您的身边还有人对于“程序员为何应该关注自动化测试”存有疑问的话,那么可以告诉他:随着DevOps的出现和对它认识的加深,业界对于自动化测试的重要性也在呈指数式增长中。 对于一般公司而言,通常会更倾慕那些擅长编写单元测试的程序员们。因为他们熟悉各种单元测试的框架库与工具,例如JUnit,Selenium,REST-Assured,Spock框架等。 作为一名Java开发人员,我们经常会涉及到一些截然不同的领域,例如:编写核心的Java代码、创建JSP页面、编写REST APIs、有时甚至会为了自动化的构建而创建一些Groovy脚本。这也是为什么我们还需要了解如何运用不同的工具来进行自动化测试的原因。 比如说

How to partially mock service in Grails integration test

假如想象 提交于 2020-02-23 06:55:30
问题 I am attempting to write a test for a controller which calls a service method. I would like to mock a dependent method within that service. My spec is as follows: MyController myController = new MyController() def mockMyService def "My spy should be called"() { when: mockMyService = Spy(MyService) { methodToSpy() >> { println "methodToSpy called" } // stub out content of this fn } myController.myService = mockMyService myController.callService() then: 1 * mockMyService.methodToSpy() } When I

How to avoid casting arguments in Spock

99封情书 提交于 2020-01-24 23:31:23
问题 I want to get a List from repository and assert its contents. In following code I get a warning that states that Object cannot be assigned to List Is there any way to add better argument to handle such case? myDomainObjectRepository.save(_) >> { arguments -> final List<MyDomainObject> myDomainObjects = arguments[0] assert myDomainObjects == [new MyDomainObject(someId, someData)] } 回答1: To elaborate on Opals answer: There are two parts and a footnote in the docs that are relevant here: If the

How to initialise/wire beans in Grails Spock unit tests?

倖福魔咒の 提交于 2020-01-24 12:50:06
问题 I'm wanting to test a Grails controller that contains a bean (I'll move it to a Service when I get it working, but I just want to keep it simple now). //resources.groovy beans { myBean(com.me.MyBean) } // MyBean.java // this needs to be in java as it is playing with spring-data-neo4j package com.me; public class MyBean { String show() { return "Hello"; } } // TestController.groovy package com.me import com.me.MyBean class TestController { def myBean def index() { render myBean.show() } } //

How do I determine the main class of a Java application?

两盒软妹~` 提交于 2020-01-22 04:03:47
问题 We are developing a platform, where many developers will be writing their own ETL applications that use a vendor's API that is then submitted for execution onto the platform. We want to constrain developers from just dong their own thing when writing a Main class (that would normally just use the vendor's API), in order to promote some strongly-held conventions. The (large) organisation has a culture of people doing their own thing which over years has resulted in some pretty nasty