Я написал простой метод тестирования для проверки метода «deleteQuizUser» для моего QuizUserService.
Сервис:
@Override
public void deleteQuizUser(String id) throws QuizUserNotFoundException {
if(this.quizUserRespository.findById(id).isPresent()) {
QuizUser oldUser = this.quizUserRespository.findById(id).get();
this.quizUserRespository.delete(oldUser);
}
else{
throw new QuizUserNotFoundException();
}
}
Тест:
@Test
public void deleteQuizUser_withValidId() throws QuizUserNotFoundException {
String userId = "SmitShah";
this.quizUserService.deleteQuizUser(userId);
QuizUser oldQuizUser = this.quizUserService.getQuizUserId(userId);
assertThat(oldQuizUser).isNull();
}
вышеуказанный тест не пройден, вместо этого он должен пройти.
Могу ли я узнать, где я не прав?
Обновление:
package Service;
import com.quizroulette.Entity.QuizUser;
import com.quizroulette.Exception.QuizUserNotFoundException;
import com.quizroulette.Repository.QuizUserRespository;
import com.quizroulette.Service.QuizUserService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.junit4.SpringRunner;
import javax.transaction.Transactional;
import static org.assertj.core.api.Assertions.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Transactional
@RunWith(SpringRunner.class)
public class QuizUserServiceUnitTest {
@TestConfiguration
static class QuizUserServiceImplTestContextConfiguration {
@Bean
public QuizUserService quizUserService() {
return new QuizUserService();
}
}
@Autowired
private QuizUserService quizUserService;
@MockBean
private QuizUserRespository quizUserRespository;
@Before
public void setUp(){
QuizUser q1 = new QuizUser("SmitShah", "SmitPassword", true, false, false, "");
QuizUser q2 = new QuizUser("SmitShah2", "Smit2Password", false, true, true, "");
List<QuizUser> listUser = new ArrayList<QuizUser>();
listUser.add(q1);
listUser.add(q2);
Mockito.when(quizUserRespository.findAll()).thenReturn(listUser);
Mockito.when(quizUserRespository.findById(q1.getQuizUserId())).thenReturn(Optional.of(q1));
Mockito.when(quizUserRespository.findById(q2.getQuizUserId())).thenReturn(Optional.of(q1));
}
@Test
public void quizUserAutowired() {
assertThat(this.quizUserService).isNotNull();
}
@Test
public void updateOnlineState_SetTrueForQuizUser() throws QuizUserNotFoundException {
this.quizUserService.setQuizUserOnline("SmitShah");
QuizUser qu = this.quizUserService.getQuizUserId("SmitShah");
assertThat(qu.isOnline()).isEqualTo(true);
}
@Test
public void updateOnlineState_SetFalseForQuizUser() throws QuizUserNotFoundException {
this.quizUserService.setQuizUserOnline("SmitShah2",false);
QuizUser qu = this.quizUserService.getQuizUserId("SmitShah2");
assertThat(qu.isOnline()).isEqualTo(false);
}
@Test
public void updateActiveState_SetTrueForQuizUser() throws QuizUserNotFoundException {
this.quizUserService.setQuizUserActive("SmitShah");
QuizUser qu = this.quizUserService.getQuizUserId("SmitShah");
assertThat(qu.isActive()).isEqualTo(true);
}
@Test
public void updateActiveState_SetFalseForQuizUser() throws QuizUserNotFoundException {
this.quizUserService.setQuizUserActive("SmitShah2", false);
QuizUser qu = this.quizUserService.getQuizUserId("SmitShah2");
assertThat(qu.isActive()).isEqualTo(false);
}
@Test
public void updatePassword_SetNewPasswordForQuizUser() throws QuizUserNotFoundException {
QuizUser oldQuizUser = this.quizUserService.getQuizUserId("SmitShah");
String oldPassword = oldQuizUser.getPassword();
QuizUser updated = new QuizUser("SmitShah", "SmitPassword2",
true, false, false,
"");
QuizUser updatedQuizUser = this.quizUserService.updateQuizUser(updated);
assertThat(updatedQuizUser.getPassword()).isNotEqualTo(oldPassword);
}
@Test
public void deleteQuizUser_withValidId() throws QuizUserNotFoundException {
String userId = "SmitShah";
this.quizUserService.deleteQuizUser(userId);
QuizUser oldQuizUser = this.quizUserService.getQuizUserId(userId);
assertThat(oldQuizUser).isNull();
}
}