0
我是新的與春季和Mockito測試。我無法找到我的問題在stackoverflow的答案。春+ Mockito注射不工作
我有以下類別:
@EnableScheduling
@Service
public class ServiceEx {
private Queue<Object> tasks = new ConcurrentLinkedQueue();
public void addItem(Object task) {
tasks.add(task);
}
@Scheduled(fixedRate = 30000)
public void executePendingTask() {
tasks.remove();
}
public void drop() {
tasks.clear();
}
public boolean isEmpty() {
return tasks.isEmpty();
}
}
@Controller
@RequestMapping("/drop")
public class ControllerEx {
private ServiceEx service;
@Inject
public ControllerEx(ServiceEx service) {
this.service = service;
}
@RequestMapping(method = RequestMethod.GET)
public String dropTasks(Model model) {
service.drop();
return "redirect:/home";
}
}
而且我的測試類的樣子:
public class ControllerTest {
@Inject
private ServiceEx service;
@InjectMocks
private ControllerEx controller;
private MockMvc mockMvc;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void test() {
service.add(task1);
service.add(task2);
this.mockMvc.perform(get("/drop")).andExpect(status().is3xxRedirection());
assertTrue(service.isEmpty());
}
}
我的問題是,服務在兩個ControlleEx和ControllerTest空,我不希望嘲笑它。我嘗試了幾個註釋,但沒有找到要使用的註釋。
我做錯了什麼?
沒有什麼引導您的服務。你在測試中沒有模擬,所以沒有什麼可以模擬的。所以不知道你爲什麼在這裏使用Mockito。 – 2014-09-18 19:37:44
是的,這是我真正上課的簡單例子,我在嘲笑其他班級。模擬班級成功實施,但服務不成功。 – 2014-09-18 19:40:56
正如我在測試類中所說的,我沒有看到將它與Spring聯繫起來的東西,因此不確定它應該如何實例化類。它也不會向控制器注入模擬器,因爲不會有控制器。你可以修改你的帖子,以更好地反映你的情況,因爲它現在沒有。 – 2014-09-18 19:45:55