当前位置: 首页 > 知识库问答 >
问题:

集成测试:测试Autowired注释

仉运乾
2023-03-14

我想在Spring中测试注入依赖关系。

 public SomeClass {
   @Autowired
   SomeBean bean ;
   public SomeBean getBean(){
     return this.bean ;
   }
 }

我想要一个这样的测试:

public SomeClassTest {
  SomeClass someClass ;
  @Before
  public void setUp(){
    someClass = new SomeClass() ;
  }                              
  @Test public testBeanWired(){
    assertNotNull(someClass.getBean()) ;                                                  
  }                          
}

我尝试过使用ContextConfiguration和一个测试配置文件,但是测试失败了,我不想在测试中使用@autowired,我想创建我的类的一个实例,并且bean是自动autowired的。

共有1个答案

蔚和风
2023-03-14

只有在bean被@configuration注释并且字节码被检测的情况下,这才是可能的。否则,只有Spring创建的bean才会自动连线。而不是使用new创建的bean。因为Spring无法知道您创建了一个对象,并且必须在其中注入依赖项。

这是依赖注入的一个基本原则:对象由容器实例化并注入,而不是由您。

 类似资料:
  • 英文原文:http://emberjs.com/guides/testing/integration/ 集成测试通常用来测试应用中得重要工作流。集成测试用来模拟用户交互和确认交互结果。 设置 为了对Ember应用进行集成测试,需要在测试框架中运行应用。首先需要将根元素(root element)设置为任意一个已知将存在的元素。如果根元素在测试运行时可见的话,这对测试驱动开发非常有用,带来的帮助非常

  • 主要内容:集成测试背后的原因,集成测试技术,集成测试方法,集成测试指南集成测试是单元测试后软件测试过程的第二个层次。在此测试中,软件的单元或单个组件在组中进行测试。集成测试级别的重点是在集成组件或单元之间交互时暴露缺陷。 单元测试使用模块进行测试,这些模块在集成测试中进行组合和测试。该软件使用许多软件模块开发,这些软件模块由不同的编码器或程序员编码。集成测试的目标是检查所有模块之间通信的正确性。 集成测试背后的原因 虽然软件应用程序的所有模块已经在单元测试中进行了测

  • 设计 集成测试包括 3 个模块:测试用例、测试环境以及测试引擎。 测试用例 用于定义待测试的 SQL 以及测试结果的断言数据。 每个用例定义一条 SQL,SQL 可定义多种数据库执行类型。 测试环境 用于搭建运行测试用例的数据库和 ShardingSphere-Proxy 环境。 环境又具体分为环境准备方式,数据库类型和场景。 环境准备方式分为 Native 和 Docker,未来还将增加 Emb

  • 我有一个包含注销endpoint的Spring控制器 我如何使用mockmvc来测试这一点? 到目前为止,我只有这段代码,但我不知道如何测试该请求。已调用logout()(其效果如何?)。

  • 单元测试 单元测试仅依赖于源代码,是测试代码逻辑是否符合预期的最简单方法。 运行所有的单元测试 make test 仅测试指定的package # 单个package make test WHAT=./pkg/api # 多个packages make test WHAT=./pkg/{api,kubelet} 或者,也可以直接用go test go test -v k8s.io/kubernet

  • 我有一个用selenium进行单元测试和集成测试的项目。 当我用IntelliJ执行cucumber集成测试时,它工作得很好,您可以看到: 用Intellij执行cucumber集成测试 但是,当我执行mvn集成测试时,似乎没有发现任何联调: 故障保护输出 我定义了以下POM: > 文件夹结构是文件夹结构 mvn集成-测试输出https://drive . Google . com/file/d/