我有一个实现CrudRepository的存储库类。然后在服务类中,我已自动连线此存储库。然后在控制器类中,我已自动连接了此服务。
我想编写控制器类的测试用例。我正在使用以下配置。
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
scale_y_continuous(position = "right") +
theme(axis.text.y.right = element_text(color = "red", margin = margin(40, 40, 40, 40)))
我的问题是,当我运行测试用例时,数据将插入用于应用程序的DB中。我可以在不将数据插入数据库的情况下进行测试吗?
答案 0 :(得分:0)
从概念上讲,当我们测试服务时,我们模拟存储库而不是注入。
您需要模拟存储库和设置行为以返回数据。
一个例子:
@MockBean
XYZRepository xyzRepository;
@Test
public void test() {
// other mocks
//
when(xyzRepository.findAll()).thenReturn(Arrays.asList(new XYZ()));
// service calls
// assertions
}