我编写了一个从数据库中获取数据的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);
}
请任何人帮我完成我的测试代码,请注意我正在春季启动项目中工作。
问候!
答案 0 :(得分:2)
首先准备您的操作列表
Operation sampleOperation = new Operation();
List<Operation> operationList = new ArrayList<Operation>();
operationList.add(sampleOperation);
现在使用mockito在调用operationList
方法时返回listOperations()
when(operationRepositoryMock.listOperations(eq("CEA1"))).thenReturn(operationList);
现在您可以使用断言来验证列表的大小或验证列表的内容
assertThat("size is equal to 1", banqueServiceImpl.listOperations(code).size(), is(1));