List<SysRoleDataAccessRelationEntity> modelAccess = sysUserDataAccessService.listDataAccess(userId).getResponseBody().getModelAccess();的单元测试怎么写
时间: 2024-02-27 14:54:21 浏览: 76
对于这个单元测试,我们需要模拟SysUserDataAccessService.listDataAccess(userId)方法的返回值,以便测试它是否正确地返回SysRoleDataAccessRelationEntity列表。
下面是一个示例代码,使用Mockito框架来模拟SysUserDataAccessService.listDataAccess(userId)方法的返回值:
```java
@RunWith(MockitoJUnitRunner.class)
public class MyTest {
@Mock
private SysUserDataAccessService sysUserDataAccessService;
@Test
public void testListDataAccess() {
// 模拟返回值
ApiResponse<List<SysRoleDataAccessRelationEntity>> response = new ApiResponse<>();
List<SysRoleDataAccessRelationEntity> modelAccess = new ArrayList<>();
modelAccess.add(new SysRoleDataAccessRelationEntity());
response.setResponseBody(modelAccess);
Mockito.when(sysUserDataAccessService.listDataAccess(Mockito.anyLong())).thenReturn(response);
// 调用被测试方法
List<SysRoleDataAccessRelationEntity> result = sysUserDataAccessService.listDataAccess(123L).getResponseBody().getModelAccess();
// 验证返回值是否正确
Assert.assertEquals(result.size(), 1);
}
}
```
在上面的代码中,我们使用MockitoJUnitRunner来运行测试,并使用@Mock注解来创建一个SysUserDataAccessService的Mock对象。然后,我们使用Mockito.when()方法来模拟SysUserDataAccessService.listDataAccess(userId)方法的返回值,以便它返回包含一个SysRoleDataAccessRelationEntity对象的列表。最后,我们调用被测试方法sysUserDataAccessService.listDataAccess(123L),并使用Assert.assertEquals()方法来验证返回值是否正确。
阅读全文