Я пытаюсь проверить метод() метод findById в классе ниже, который считывает данные из моей базы данных с помощью CrudRepository:Развязка теста Mockito от значения специфического теста?
Класс испытываемого:
public interface PersonRepository extends CrudRepository<Person, Integer>
{
Person findById(String id);
}
Ниже мой тестовый класс, тест в настоящее время проходит, но я хотел бы изменить его так, что если идентификатор «1», который я тестирую, удаляется из моей базы данных, я все равно могу выполнить свой тест. То есть не полагайтесь на данные в базе данных.
Как это сделать?
тест:
public class PersonRepositoryTest {
@Mock
private PersonRepository personRepository;
@Before
public void setUp() throws Exception {
//Initialize the mocked class and ensure that it is not null
MockitoAnnotations.initMocks(this);
assertThat(personRepository, notNullValue());
}
@Test
public void testFindById() throws ParseException {
//test string
String id = "1";
//when it is called, return
when(personRepository.findById(anyString())).thenReturn(new Person());
Person person = personRepository.findById(id);
assertThat(person, notNullValue());
}
}
Что вы описываете на самом деле то, что достигается с помощью макета рамки: Вы не используете реальную базу данных, но определить ответы заранее. Ваш текущий mock всегда будет возвращать новый экземпляр Person, независимо от того, какой идентификатор вы запрашиваете. – Thomas
Итак, как мне изменить текущий тест? – java123999
Непонятно, чего бы вы хотели достичь, вы уже независимы от реальной базы данных. Итак, какова ваша цель? – Thomas