【发布时间】:2019-06-09 15:54:44
【问题描述】:
如何为 if...else 语句编写一个模拟测试用例,其中还包括异常测试,我对此感到很困惑。 UserService 是一个接口
UserFactory.java
public class UserFactory {
@Autowired
private List<UserService> UserList;
private final Map<String, UserService> UserMap = new HashMap<>();
@PostConstruct
public void initUserMap() {
for (final UserService user : UserList) {
UserMap.put(user.getUserId(), user);
}
}
public UserService getUser(String userId) {
final UserService userService = UserMap.get(userlId);
if (null == userService) {
throw new IllegalArgumentException("user are not in the group");
}
return userService;
}
}
用户服务(接口)
public interface UserService{
String getUserName();
String getUserId();
}
这是我的测试,但它不正确...
@RunWith(MockitoJUnitRunner.class)
public class UserServiceTest {
@Mock
private UserService userService;
@InjectMocks
private UserFactory UserFactory;
private Map<String, User> UserMap;
private String userId = "123";
@Before
public void set_up(){
UserMap = new HashMap<>();
UserMap.put(userId, userService);
}
@Test
public void getUser(){
when(UserMap.get(userId)).thenReturn(userService);
userService actual = userServiceFactory.getUser(userId);
assertEquals(UserMap.get(userId), actual);
}
}
【问题讨论】:
-
也许这篇文章可以帮助stackoverflow.com/questions/16243580/…
-
if (null == userService) {我假设。对吧? -
@davidxxx,谢谢大卫,我已经更新了问题
标签: java unit-testing spring-boot mockito spring-boot-test