Тестирование Rest Controller - PullRequest
0 голосов
/ 03 мая 2018

Я хочу протестировать Rest Controller, но не знаю, как это сделать. Прямо сейчас у меня есть метод настройки, в котором я удаляю все записи из таблицы ITEMS и вводю некоторые записи, на которых я буду тестировать методы остальных контроллеров. Это хорошая идея? Или мне как-то издеваться над базой, а не удалять записи перед всеми тестами? Класс RestControllerTest:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = WebApplicationContextConfig.class)
@WebAppConfiguration
public class ItemControllerTest {
    @Autowired
    private WebApplicationContext webApplicationContext;

    @Autowired
    private ItemRepository itemRepository;

    private MockMvc mockMvc;

    private final List<Item> items = new ArrayList<>();

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        itemRepository.deleteRecords();

        Item item1 = new Item();
        item1.setItemId("1");
        item1.setName("Shirt A");
        item1.setCategory("Shirt");
        item1.setColor("Black");
        item1.setSize("XL");
        item1.setQuantity(15);
        item1.setArchived(false);
        items.add(item1);
        itemRepository.addItem(item1);

        Item item2 = new Item();
        item2.setItemId("2");
        item2.setName("Trousers D");
        item2.setCategory("Trousers");
        item2.setColor("Brown");
        item2.setSize("S");
        item2.setQuantity(12);
        item2.setArchived(true);
        items.add(item2);
        itemRepository.addItem(item2);

    }

    @Test
    public void shouldGetItems() throws Exception {
        mockMvc
                .perform(get("/items"))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$", hasSize(2)))
                .andExpect(jsonPath("$[0].itemId", is(items.get(0).getItemId())))
                .andExpect(jsonPath("$[0].name", is(items.get(0).getName())))
                .andExpect(jsonPath("$[0].category", is(items.get(0).getCategory())))
                .andExpect(jsonPath("$[0].color", is(items.get(0).getColor())))
                .andExpect(jsonPath("$[0].size", is(items.get(0).getSize())))
                .andExpect(jsonPath("$[0].quantity", is(items.get(0).getQuantity().intValue())))
                .andExpect(jsonPath("$[0].archived", is(items.get(0).isArchived())))
                .andExpect(jsonPath("$[1].itemId", is(items.get(1).getItemId())))
                .andExpect(jsonPath("$[1].name", is(items.get(1).getName())))
                .andExpect(jsonPath("$[1].category", is(items.get(1).getCategory())))
                .andExpect(jsonPath("$[1].color", is(items.get(1).getColor())))
                .andExpect(jsonPath("$[1].size", is(items.get(1).getSize())))
                .andExpect(jsonPath("$[1].quantity", is(items.get(1).getQuantity().intValue())))
                .andExpect(jsonPath("$[1].archived", is(items.get(1).isArchived())));
    }
}
...