spring—如何在java中使用mockito模拟局部变量

m4pnthwp  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(721)
  1. class Testing{
  2. @Autowired
  3. ClassA classa;
  4. public void test(){
  5. MyService service = classa.someMethod();
  6. service.getID(); //service is always null on this line
  7. }
  8. }
  9. ClassA {
  10. public MyService someMethod(){
  11. return Myservice.builder().id(1l).build();
  12. }
  13. }
  14. import lombok.Builder;
  15. import lombok.Getter;
  16. @Builder
  17. @Getter
  18. public class MyService {
  19. private Long id;
  20. private Long externalId;
  21. }

试图模仿“myservice服务”,它总是空的。我们怎么嘲笑它?
myservice是一个builder类,@builder来自import lombok.builder;包裹

ds97pgxw

ds97pgxw1#

  1. @ExtendWith(MockitoExtension.class)
  2. class Testing{
  3. @Mock
  4. MyService service;
  5. public void test(){
  6. when(service.getID()).thenReturn(1);
  7. service.getID()
  8. }
  9. }
pod7payv

pod7payv2#

使用junit4+mockito

  1. @RunWith(MockitoJUnitRunner.class)
  2. public class ClassATest {
  3. @Mock
  4. ClassA classa;
  5. @Test
  6. public void test(){
  7. //Arrange
  8. MyService service = MyService.builder().id(1l).build();
  9. when(classa.someMethod()).thenReturn(service);
  10. //Act
  11. MyService returnedService = classa.someMethod();
  12. //Assert
  13. assertEquals(1L, returnedService.getId().longValue());
  14. }
  15. }
展开查看全部

相关问题