Я не уверен после долгих чтений о том, как тестировать класс ниже.
Я привел базовый c пример ... но предполагая, что метод класс / реализованный может создать более сложный объект (не только Строка, как показано ниже), как я могу смоделировать интерфейс, чтобы я мог ввести макет в класс для проверки поведения различных классов?
Например, в упрощенном виде ниже ... если длина ' При вызове класса getSayHelloLength () 'sayHello' превысило 500 символов, возможно, я хочу заявить, что выброшено HelloTooLongException.
/**
* MyClass implements MyInterface.
*/
public class MyClass implements MyInterface {
public int getSayHelloLength() {
return sayHello().length();
}
//I want to change/Mock the return of the implemented interface.
@Override
public String sayHello() {
//Do some magic and some code an eventually return something based upon 'input'
// Magic
// More magic.
return "My Class to Test Says Hello!";
}
}
Интерфейс:
public interface MyInterface {
String sayHello();
}
I Я использую JUnit5:
class MyClassTest {
@InjectMocks
private MyClass myClass;
@BeforeEach
void setUp() {
}
@Test
void getSayHelloLength() {
//Mock the interface 'myClass' implements as to test various "hellos" outputs.
}
}