Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mockito-服务中的模拟自动连线存储库_Java_Spring_Unit Testing_Testing_Mockito - Fatal编程技术网

Java Mockito-服务中的模拟自动连线存储库

Java Mockito-服务中的模拟自动连线存储库,java,spring,unit-testing,testing,mockito,Java,Spring,Unit Testing,Testing,Mockito,我正在试着从一个控制器写一个测试。 控制器调用调用自动连线存储库的服务 这是我的课 @RunWith(MockitoJUnitRunner.class) public class AdminDestinationControllerTest { private final PTUser user = new PTUser(); private MockMvc mockMvc; @InjectMocks private AdminDestinationController adminDesti

我正在试着从一个控制器写一个测试。 控制器调用调用自动连线存储库的服务

这是我的课

@RunWith(MockitoJUnitRunner.class)
public class AdminDestinationControllerTest {

private final PTUser user = new PTUser();
private MockMvc mockMvc;

@InjectMocks
private AdminDestinationController adminDestinationController;

@Mock private RoutingDestinationServiceImpl  routingDestinationService;
@Mock private PTRoutingDestinationRepository destinationRepository;

@Before
public void setUp() throws Exception {
    MockitoAnnotations.initMocks(this);
    mockMvc = MockMvcBuilders.standaloneSetup(adminDestinationController).build();
}

@Test
public void setCost_UnknownCode() throws Exception {
    when(routingDestinationService.setCost(Mockito.anyString(), Mockito.any())).thenCallRealMethod();
    when(destinationRepository.setCost(Mockito.anyString(), Mockito.any())).thenReturn(Optional.empty());
    mockMvc.perform(post("/admin/destinations/cost").content("{\"code\":\"99999\", \"cost\":\"2\"}").contentType(MediaType.APPLICATION_JSON))
        .andExpect(status().isNotFound());
}
}
但在服务中,存储库为空。 你知道我该怎么做吗


谢谢

好吧,该服务也是一个
Mock
,Mock中没有注入。您必须模拟从
AdminDestinationController
调用的
RoutingDestinationServiceImpl
中的方法。只是不要调用模拟服务的实际方法。并为服务编写一个单元测试。