Spring boot Mockito Junit中@InjectMocks后为Null

Spring boot Mockito Junit中@InjectMocks后为Null,spring-boot,junit,mockito,Spring Boot,Junit,Mockito,在使用JUnit进行单元测试时,我在通过依赖性时遇到了一些问题 考虑以下几段代码: 这是我要测试的类的依赖注入,我们称之为服务 错误日志跟踪 服务类 } 服务类测试 试着打电话 MockitoAnnotations.initMocks(this); 在您的测试方法或@Before setup方法中您的问题是什么?当我调用测试类中的服务类时,我得到了空指针异常,异常的堆栈跟踪是@JB Nizet?我是否用堆栈跟踪编辑了我的问题?您需要进行逻辑推理。只能引发异常,因为EntityNull。那么为什

在使用JUnit进行单元测试时,我在通过依赖性时遇到了一些问题

考虑以下几段代码:

这是我要测试的类的依赖注入,我们称之为服务

错误日志跟踪 服务类 }

服务类测试 试着打电话

MockitoAnnotations.initMocks(this);

在您的测试方法或@Before setup方法中

您的问题是什么?当我调用测试类中的服务类时,我得到了空指针异常,异常的堆栈跟踪是@JB Nizet?我是否用堆栈跟踪编辑了我的问题?您需要进行逻辑推理。只能引发异常,因为EntityNull。那么为什么它是空的呢?因为restTemplate.getForEntity。。。返回空值?为什么返回空值?因为您还没有告诉模拟rest模板在使用这些参数调用此方法时返回什么。查看代码中的URL。查看测试中的URL。它们不一样,这里不适用@RunWithMockitoJUnitRunner.class会自动为您执行此操作。因此,当你缺乏对这个问题的深刻认识时,考虑评论,而不是给出错误的答案。
@Service
public class ServiceClass {

    public static final String CRM_JPA_URI = "http://localhost:9000/api/tickets/";

    @Autowired
    RestTemplate restTemplate;


public Customer getCustomerById(int customerId) {
    ResponseEntity<Customer> entity = restTemplate.getForEntity(CRM_JPA_URI +"ticket/{customerId}",
            Customer.class, customerId);
    return entity.getBody();
}
@RunWith(MockitoJUnitRunner.class)
public class ServiceClassTest {

    @Mock
   RestTemplate mockRestTemplate;

    @InjectMocks
    ServiceClass serviceClass;


    /**
     * getCustomerByIdTest
     */
    @Test
    public void getCustomerByIdTest(){

        Customer customer = new Customer();
        customer.setPassengerName("Ramesh");
        customer.setBookingDate("09/09/2019");
        customer.setDestStation("pamur");
        customer.setEmail("r@gmail.com");
        customer.setSourceStation("ongole");

        Mockito.lenient().when(mockRestTemplate.getForEntity("http://localhost:9000/api/tickets/ticket/1", Customer.class)).
        thenReturn(new ResponseEntity<Customer>(customer,HttpStatus.OK));

        System.out.println("object is--->"+serviceClass.getCustomerById(1));

        assertEquals(customer, serviceClass.getCustomerById(1));

    }

}
MockitoAnnotations.initMocks(this);