2
模擬休息服務(帶彈簧)我正在編寫一個測試其餘調用的junit測試用例。junit
我試圖模擬售票服務,它工作正常,但是當我在REST服務調用中嘲笑它。它不嘲笑。
我正在使用springboot,mongodb和REST。
任何建議來解決這個問題?
@RestController
@RequestMapping("/ticket")
public class TicketRestController
{
@Autowired
public TicketService ticketService;
@RequestMapping (path = "/all", method = {RequestMethod.GET})
public List<Ticket> getAllTicket()
{
return ticketService.getAll();
}
}
public interface TicketService
{
public List<Ticket> getAll();
}
@Service
public class TicketServiceImpl implements TicketService {
@Autowired
TicketRepository ticketRepository;
public List<Ticket> getAll() {
return ticketRepository.findAll();
}
}
public interface TicketRepository extends MongoRepository<Ticket, String> {
public List<Ticket> findAll();
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/mongo-repository-context.xml")
@WebAppConfiguration
public class TicketControllerTest extends AbstractTicketTest {
public static final String PATH = "/ticket";
public static final String ALL = PATH + "/all";
public static final String ID = PATH + "/id";
public static final String STATE = PATH + "/state";
public static final String PAYMENT_TYPE = PATH + "/paymentType";
public static final String TABLE_NUMBER = PATH + "/tableNumber";
@Autowired
private WebApplicationContext ctx;
private MockMvc mockMvc;
@Autowired
@InjectMocks
private TicketService ticketService;
@Mock
private TicketRepository ticketRepository;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.webAppContextSetup(ctx).build();
ticketRepository.deleteAll();
}
@Test
public void getAllTickets() throws Exception {
Mockito.when(ticketRepository.findAll()).thenReturn(TicketMockProvider.createTickets());
this.mockMvc.perform(get(ALL))
.andExpect(status().isOk())
.andExpect(jsonPath("$.*", hasSize(1)))
.andExpect(jsonPath("$[0].ticketItems", hasSize(2)));
}
}
非常感謝你指出問題:)它的工作:) – Dev