本文介绍了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中的模拟服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-26 06:43
查看更多