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

使用模拟和应用程序上下文的半集成测试

傅峻
2023-03-14

我需要在REST级别编写一个e2e测试,发送真正的请求。所以我想用应用上下文,而不是嘲讽豆。

RestController。类有一个自动连接的MyService。类,以及此<code>MyService。类依赖于两个存储库类。因此,我尝试模拟存储库,并以以下方式将它们注入真正的服务

@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = MyService.class)
@AutoConfigureMockMvc
class MyControllerTest {

  @Mock private MyRepository repository;
  @Mock private AnotherRepository anotherRepository;
  @Autowired @InjectMocks private MyService service;
  @InjectMocks private MyController controller;

  @RepeatedTest(1)
  void someTest() throws Exception {
    MockHttpServletResponse response =
        mvc.perform(...); assertThat(...);
  }
}
@Service
@RequiredArgsConstructor
public class MyService {
  private final MyRepository repository;
  private final AnotherRepository another; ...}

但我得到了以下错误:org.springframework.beans.factory。UnsatisfiedPendencyException:创建名为“myRepository”的bean时出错。

我还尝试使用< code > @ context configuration(classes = { my config . class })没有成功:

@EnableWebMvc
@Configuration
public class MyConfig {
  @Autowired private MyService service;
  @Mock private MyRepository repository;
  @Mock private AnotherRepository another;
}

我错过了什么吗?

共有1个答案

甘祺
2023-03-14

@RunWith(SpringRunner.class)添加到类MyControllerTest

@RunWith(SpringRunner.class)
class MyControllerTest {

 
}
 类似资料:
  • 我必须为microservice X创建一个集成测试,它可以从外部sftp服务器下载、处理和导入csv文件。整个过程由一个Spring Boot调度程序任务启动,该任务启动一个spring批处理作业来处理和导入数据。导入过程由spring batch writer完成,它是一个restTemplate存储库(因此它调用对另一个微服务的post请求)。 我已经设法模拟了sftp服务器,在其上放置了一

  • 我是Spring的新手,如果我做了一些愚蠢的事情,请原谅我。我正在尝试为我的应用程序编写一个使用Spring的集成测试。 我正在创建一个上下文层次结构,如下所示 在我的测试方法中,我试图创建一个新的子上下文,它只有一个bean,它是一个应用程序侦听器,依赖于父方法中的bean。 我面临的问题是,来自子上下文的bean没有收到应用程序事件的通知,而且@Value注释也没有得到处理。 我到底做错了什么

  • 如何模拟集成测试所需的许多依赖关系? 我使用Mockito进行纯单元测试。在这种情况下,Pure意味着测试一个类,嘲笑它的所有依赖关系。漂亮。 现在是集成测试。假设在这种情况下,集成测试将测试以下内容: 消息被放入队列 我们也可以说,在第2步中发生的处理是严肃的事情。它依赖于大量的数据库交互、多种外部服务、文件系统,以及各种各样的东西。流还会引发很多副作用,所以我不能简单地确保响应是正确的——我需

  • 有人在Android中使用Appium进行Web应用程序测试吗? 目前我正在使用Appium在IOS Simulator(IPad)中自动化我的Web应用程序,并且运行良好。我也想将它用于Android,即(Mac机器中的Nexus7 Simulator)。 我已经尝试了以下所需的能力… 但我在错误下面。。。 出现配置错误,未启动会话信息:响应客户端的错误:{“状态”:6,“值”:{“消息”:“会

  • 在我的springboot应用程序中,我使用以下类执行集成测试 下面是在我的测试配置类中定义的bean 不过,只创建生产bean而不创建主bean。