【发布时间】:2017-08-22 19:57:32
【问题描述】:
我编写了一个从数据库获取数据的 java 服务:
public List<Operation> listOperations(String code){
//some business logic...
}
我使用来自我的数据库listOperations("CEA1"); 的代码手动测试了该服务,它工作正常,它返回给我一个包含 3 个操作对象的列表(我的数据库中的结果相同)。
现在我想使用 Mockito 和 JUnit 测试我的服务,但我是单元测试的初学者(但我知道单元测试的概念是什么,模拟......),
这是我未完成的测试课:
@RunWith(MockitoJUnitRunner.class)
public class MyserviceTest {
@Mock
private OperationRepository operationRepositoryMock;
@InjectMocks
private BanqueServiceImpl banqueServiceImpl;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testListOfOperation(){
String code = "CEA1";
//to check if my service is working good ,the code 'CEA1' should return a list with 3 Operation object
when(operationRepositoryMock.listOperations(code)). // i dont know how to mock the result
boolean result = banqueServiceImpl.listOperations(code); // i don't know how to assert that the service return a list that contains 3 Operation object
//assertTrue(result);
}
请任何人帮助我完成我的测试代码,请注意我正在从事 Spring Boot 项目。
问候!
【问题讨论】:
-
如果您的服务返回列表,那么您为什么要将结果分配给
boolean? -
@JakubCh。这只是一个小错误,因为复制了代码的 sn-p
-
您能向我们解释一下
listOperations方法执行的功能吗?了解该方法的作用应该有助于我们确定如何测试它。例如,如果它只是简单地调用数据访问方法并返回从数据库中检索到的数据,那么,您根本不应该费心对其进行单元测试! -
在考虑如何编写测试之前,花点时间考虑一下测试用例应该尝试验证什么
标签: java spring-boot junit mockito