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

单元测试Spring问题

汝岳
2023-03-14

我试图学习如何在spring中使用Java8进行单元测试/mockito测试,但遇到了一些问题。我试图测试我的方法findUserById,但它一直运行false。可选类型问题是一个问题,但可能已经解决了这些问题。然而,它仍然是错误的。我的其他测试都是有效的,所以这只是一个顽固的测试。我将感谢你的帮助。

User Controller : 

 @GetMapping("/{id}")
    public ResponseEntity<User> findUserById(@PathVariable Integer id){
        return ResponseEntity.ok(userServiceImp.findUserById(id));
    }

UserApplictionTester : 


  @Autowired
    private Service service;

   @MockBean
    private Repository repo;

@Test
    public void exampleTest() {

        User expectedUser = new User(3, "example@gmail.com", "password1", "exampleName", "USER");
        User testUser = new User();
        testUser.setId(3);
        when(repo.findById(any())).thenReturn(Optional.of(testUser));
        assertEquals(expectedUser, service.findUserById(testUser.getId()));
    }

共有1个答案

公孙新觉
2023-03-14

我相信你的Controller.findUserById方法,你的意思是ResponserEntity.of(...)而不是ResponserEntity.ok(...),因为UserService.findUserById返回Optimed

  1. 您正在断言两种不同的类型。预期用户类型为User,而service.findUserById返回的实际用户是可选的

 类似资料:
  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。

  • 英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其

  • 我对SpringBoot非常陌生,并试图学习如何在SpringBoot中进行测试。我读到了@SpringBootTest注释,它有助于集成测试应用程序。我想知道在SpringBoot中应该如何进行单元测试。单元测试是否需要指定@SpringBootTest注释,还是仅用于集成测试?是否有用于单元测试的特定注释? 任何指点都将不胜感激。提前谢谢! 编辑:SpringBootTest注释是否仅用于集成

  • 我已经开始学习OAuth2 spring安全从一个星期,所以对不起,如果问题是容易的。在我开始研究之前,这个话题对我来说似乎很容易。我将在应用程序中为Restendpoint编写测试。为了做到这一点,我将为我的资源类编写测试。但我的应用程序使用的是OAuth2。 第一个想法是配置单独的授权服务器,扩展AuthorizationServerConfigurerAdapter用于此测试。我已经将Cli

  • 问题内容: 任何人都可以帮助我找出以下异常的解决方案,我想我只是不太了解事务传播机制,这阻碍了我理解下面显示的异常消息的真实含义,所以请帮助我理解整个问题事情,的确非常感谢! 这是导致上述异常的代码: 这是BaseTest: 问题答案: AbstractTransactionalTestNGSpringContextTests将所有测试方法包装在事务中。Spring批处理作业存储库不喜欢与他人共享