我有一个简单的Spring Boot Application结构,如下所示
src/main/java
com
+- example
+- myproject
+- Application.java
|
+- config
| +- SpringConfig.java
|
+- service
| +- DBService.java
src/main/test
com
+- example
+- myproject
+- config
| +- MyTestRoot.java
src/test/resources
applicationContext-test.xml
pplication.java注释为
@SpringBootApplication
@EnableJms
@ComponentScan
@EnableTransactionManagement
@EnableAutoConfiguration
SpringConfig。java用@Configuration注释,并有一个返回DBService新实例的方法。该方法用@Bean注释
@Bean
public DBService dbService() {
return new DBService();
}
DBService类中包含了自动加载的存储库。这些存储库来自另一个项目依赖项,并提供到RDBMS/数据存储的连接。
我在applicationContext测试中定义了一个bean。xml
<bean id="dbService" class="com.path.to.class.in.dependency"/>
当我在测试类中自动连接dbService时,我得到一个错误“创建名称为‘dbServices’的bean时出错:自动连接依赖项的注入失败;”
我做错了什么?我使用的是spring boot 1.3.5,无法使用@SpringBootTest注释,因为它从1.4开始就可以使用。任何帮助都将不胜感激。
编辑:由于DbService类反过来引用存储库类(UserRepository、customerRepository等),所以我也尝试在测试上下文文件中为这些存储库定义bean。然而,我在DbService类(主要)中注入的存储库是接口,Spring Boot框架会在运行时自动为我解析实际的实现。我不确定如何在测试环境中做到这一点。
我发现以下帖子对我有用:http://tuhrig.de/inject-mocks-with-springs-contextconfiguration/
我的问题是我想在我的测试中使用DbService。但是DbService依赖于外部包依赖关系中的其他bean,这些bean在运行时由Spring解决。我设置了一个ServiceMockProvider类,该类返回DbService使用的所有自动构建bean的Mock。我创建了一个用@ContextConfigance注释的基本测试类,并在类属性中提供了DbService类和ServiceMockProvider类。我所有的测试类都扩展了这个基类,我可以开始测试了。
希望这对某人有帮助。感谢托马斯·乌里格的帖子。
Spring Boot不会自动从XML文件导入bean。使用@importeBeans在源配置上创建一个XML注释类。
顺便问一下,为什么要在XML文件中创建这些bean?只需为他们使用@Configuration
类,并保持简单。
此外,当您使用@SpringBootApplication
时,您不需要:
@EnableAutoConfigsion
@EnableComponentScan
它们是多余的。请参阅@SpringBootApplication
源代码,了解它到底引入了哪些注释。
Ansible Playbooks 的集成测试 很多时候, 人们问, “我怎样才能最好的将 Ansible playbooks 和测试结合在一起?” 这有很多选择. Ansible 的设计实际上是一个”fail-fast”有序系统, 因此它可以很容易地嵌入到 Ansible playbooks. 在这一章节, 我们将讨论基础设施的集成测试及合适的测试等级. Note 这是一个关于测试你部署应用程序
综述 富因特网应用程序(Rich Internet Applications, RIA)应该遵循Adobe的 crossdomian.xml 策略来控制跨域访问数据和使用服务,例如Oracle Java,Siverlight和Adobe Flash。因此,一个域名授予另一个不同域名远程访问自己的服务的能力。但是,这些策略文件中描述的访问控制被糟糕配置。糟糕的策略配置会导致跨站点伪造请求攻击(CSR
我不明白在springboot应用程序中如何正确地编写websocket测试用例。我有一个实现的类,我在中添加了这个处理程序: 但是当我写下下面的测试用例时,我得到了一个例外: 异常::发起WebSocket连接的HTTP请求失败 如果我将(结尾斜杠)它可以工作,但不工作。 我做错了什么?
像组件一样,服务通常需要依赖,Angular通过服务类的构造函数注入。由于我们在Angular的引导过程之外初始化这些类,我们必须自己显式注入这些依赖。这是通过使用TestBed配置测试模块传回所需的依赖项(如HTTP模块)来实现的。
要从访问,我使用了一个带注释的接口,名为,该接口在需要时是。如果两者都在运行,则该服务将被Eureka发现。这对于所有服务都在运行的类似生产的设置很好。 但现在我想对我的的一些特性进行单元测试。启动一个测试服务并不成问题 就像我在中所做的那样。问题是Eureka依赖于我的的发现...因此我的testclass崩溃,因为自动执行的-实例不工作。 我能告诉Spring使用一个伪造的实例来进行测试吗?还
我们正在介绍Google Play订阅,其中包括30天的试用,我正在寻找一些关于如何测试的建议。 然而,当我试图创建一个新的Google帐户进行另一轮测试时,Google告诉我,我的电话号码(这是强制验证步骤)已经被使用了太多次,所以我不能再用这个号码创建任何帐户了。 我很难相信这是唯一/最好的测试免费试用Google Play的方法,所以我很高兴能得到任何关于如何最好的方法的帮助。