本文介绍了Spring Boot中的模拟服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
运行测试时出现异常:
这是UserServiceImpl:
Here is UserServiceImpl:
@Service
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
@Autowired
public UserServiceImpl(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public List<User> getAll() {
return userRepository.findAll();
}
@Override
public User getById(long id) {
return userRepository.findOne(id);
}
这是我的测试
@RunWith(SpringJUnit4ClassRunner.class)
public class UserServiceImplTest {
@InjectMocks
UserServiceImpl userService;
@Mock
UserRepository userRepositoryMock;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
}
@Test
public void getById() {
long id = 12;
when(userRepositoryMock.findOne(id)).thenReturn(new User(id));
Assert.assertEquals(id, userService.getById(id).getId());
}
}
如何解决这个问题?
推荐答案
只需从测试类中删除setup()
方法.
Just Remove your setup()
method from your test class.
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
}
当您不使用 @RunWith(SpringJUnit4ClassRunner.class)
仅需要注解或setup()方法之一,而不是两者都需要.
Only one either annotation or setup() method is needed, not both.
这篇关于Spring Boot中的模拟服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!