草庐IT

Spring整合JUnit4

全部标签

java - Spring 测试上下文最佳实践

我正试图用集成测试覆盖一个巨大的SpringBoot应用程序。应用程序中有很多Springbean。加载Spring上下文需要一段时间。所以我想知道-Spring是否足够聪明,可以在位于不同类的多个集成测试之间共享相同的上下文?我的意思是避免为每个测试类初始化重量级上下文。当测试1、2、4使用TestContextOne而测试3,5使用TestContextTwo时会发生什么?Spring是否按1、2、4、3、5顺序启动它们?还是Spring会在内存中保留两个上下文?P.S.换句话说,是对所有集成测试使用单个“完整”Spring上下文的常见做法,而不是为每个测试编写单独的上下文测试?

java - Spring 集成测试消耗大量内存,在 GradleWorkerMain 中使用大量重复线程

我有一个有点复杂的SpringBoot应用程序,包含大量测试。在运行测试时,它似乎积累了很多线程,其中一个线程有多个实例并且被称为SimplePauseDetectorThread_0,我追溯到这个依赖|||\---io.micrometer:micrometer-core:1.1.1|||+---org.latencyutils:LatencyUtils:2.0.3这似乎发生在SpringBoot2.0.6和2.1.1上。一个典型的测试可能是这样的:@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(webEnvironmen

java - Spring Boot 请求头返回空值

我有一个springboot项目,里面有一些RestAPI。我有两个自定义header,分别名为request_date和tenant。我试图在拦截器中读取这些header的值,但它只读取tenant的值并为request_date返回null。重要我使用过滤器来包装请求对象,因为我想稍后读取请求正文。有一个过滤器可以添加CORSheader。当我在本地主机上运行我的项目并调试代码时,我能够成功读取两个header的值。但是,当我在生产环境中部署我的应用程序并使用postman或其他客户端发出请求时,request_dateheader的值始终读取为null。我不确定这似乎是什么问题。

java - 运行 Spring 单元测试的 AOP 问题

我有一个SpringWeb应用程序,它被配置为使用JDK代理进行AOP。AOP注释(例如@Transactional)在接口(interface)上声明,而不是在实现类上声明。应用程序本身工作正常,但是当我运行单元测试时,它似乎试图将CGLIB用于AOP功能(而不是JDK代理)。这会导致测试失败-我在下面附加了堆栈跟踪。我不明白为什么在运行测试时使用CGLIB,因为Spring配置与应用程序运行时基本相同。一个可能的显着差异是测试配置使用DataSourceTransactionManager而不是JTA事务管理器。测试类本身都扩展了AbstractJUnit4SpringContex

java - Spring 了解 YAML 中的属性

Spring是否因为以下原因放弃了YAML而将其用作.properties/.xml的替代品:[SpringDeveloper]:...YAMLwasconsidered,butwethoughtthatcountingwhitespacesignificantwasasupportnightmareinthemaking...[referencefromspringforum]我相信YAML对属性很有意义,我目前正在项目中使用它,但很难将属性注入(inject)到时尚。我遗漏了什么,或者我应该创建一个自定义YamlPropertyPlaceholderConfigurer吗?

java - 在java,eclipse,junit中如何分析哪个方法耗时多?

这个问题在这里已经有了答案:WhatisprofilingallaboutandhowcanIprofilemyJavaprogram?(4个答案)关闭9年前。对于某些专业Java编码人员来说,这可能是一个愚蠢的问题,但我现在快要疯了,所以我还在问。请有人指导我正确的方向。如何分析我的java程序中哪个方法/partOfMethod消耗的时间更多?(我正在使用Eclipse和Junit)

java - 如何在 Spring-data rest 中更新引用对象?

例子:类(class)Course和Teacher是多对一的关系,如何通过Spring-datarest改变某门课的teacher?GEThttp://localhost:7070/study-spring-data/course/2响应:{"name":"CSCI-338HardcoreJava","_links":[{"rel":"course.Course.teacher","href":"http://localhost:7070/study-spring-data/course/2/teacher"},{"rel":"self","href":"http://localhos

java - 使用 jersey-spring3 从 JerseyTest 容器中检索托管 bean

这个问题是上一个问题SpecifyCustomApplicationContext的后续问题.我们正在将一些数据服务从使用jersey-spring的Jersey1.x迁移到使用jersey-spring3的Jersey2.x。我们有几个继承自JerseyTest的测试类。其中一些类使用未在web.xml文件中指定的自定义applicationContext.xml文件。出于对象模拟的目的,我们将模拟Jersey资源中的一些组件。在Jersey1.x中,我们可以通过以下方式模拟应用程序上下文文件中的对象并按如下方式检索这些模拟实例ClassToMockobj=(ClassToMock)

java - JUnit - 静态类是否维护测试类之间的状态?

我有一个单元测试类,单独运行时通过。当我将它与包中的所有其他测试一起运行时,它失败了,因为一个独立的静态类没有被初始化。这个独立的静态类被其他类使用,因此它的状态似乎在测试之间保持不变。我的观察是正确的还是发生了其他事情?另外,如果有人可以提供链接或其他内容作为引用,那就太好了。谢谢! 最佳答案 Thisindependentstaticclassisusedbyotherclassesandsoitseemsthatitsstateismaintainedbetweentests.是的。那就是将要发生的事情。这只是静力学尴尬的原因

java - Spring 或 hibernate 连接泄漏

我在web应用程序(hibernate-core-4.3.8.Final和spring3.2.11.RELEASE)上使用spring和hibernate。我正在使用hikaricp(v2.2.5)作为连接池实现,它检测连接泄漏并在下面打印堆栈跟踪。我正在使用spring的声明式事务划分,所以我假设资源的管理和清理是由spring/hibernate完成的。因此,我认为spring或hibernate是检测到的连接泄漏的原因。基本上,有一个计时器,当它被触发时,调用一个标有@Transactional注释的springbean。@TransactionalpublicclassInvo