Обычно вы хотите создать макеты ваших зависимостей. Из комментариев кажется, что вы хотите проверить классы в отделении, поэтому я бы предложил "модульное тестирование" модулей. Я проведу вас через тестирование MyClass
.
class MyTestClass {
// First you want to create mocks of your dependencies
@Mock
MyProto a;
@Mock
B b;
@Mock
C c;
// At this point Mockito creates mocks of your classes.
// Calling any method on the mocks (c.doSomething()) would return null if the
// method had a return type.
@Test
void myFirstTest(){
// 1. Configure mocks for the tests
// here you configure the mock's returned values (if there are any).
given(a.someMethod()).willReturn(false);
// 2. Create the SUT (Software Under Test) Here you manually create the class
// using the mocks.
MyClass myClass = new MyClass(a, b, c);
// 3. Do the test on the service
// I have assumed that myClass's doSomething simply returns a.someMethod()'s returned value
boolean result = myClass.doSomething();
// 4. Assert
assertTrue(result);
// Alternatively you can simply do:
assertTrue(myClass.doSomething());
}
}
Если ваши классы содержат void
методы, вы можете проверить, были ли методы вызваны с правильными аргументами:
verify(a).someMethod(someParameter);
Это довольно много для Мокито. Вы создаете макеты, устанавливаете желаемое поведение и, наконец, утверждаете результат или проверяете, что методы были вызваны с правильными аргументами.
Однако я не думаю, что это имеет большой смысл для классов "Mockito-test", которые отвечают за соединения с базой данных и аналогичную конфигурацию. Тестирование Mockito ИМХО больше подходит для тестирования сервисного / логического уровня приложения. Если бы у вас был весенний проект, я бы просто протестировал такие классы конфигурации (то есть конфигурацию базы данных и т. Д.) В сценарии, где я установил бы реальное соединение с базой данных.