У меня есть интерфейс и класс, который реализует этот интерфейс и переопределяет его метода:Как проверить интерфейс java?
public interface Intr {
public int method1();
public int method2();
}
public class example implements Intr{
@override
public int method1()
{
//stmts
}
@override
public int method2(){
//stmts
}
}
я хочу создать тест JUnit, чтобы проверить, что интерфейс без реализации класса на моем тесте, я использовал код как:
public class TIntr {
private Intr interface;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public Object testMethod1() {
try{
int result = interface.method1();
assertEquals(something, result);
}catch(Exception e){
fail("Test Failed!!");
}
@Test
public Object testMethod1() {
try{
int result = interface.method2();
assertEquals(something, result);
}catch(Exception e){
fail("Test Failed!!");
}
}
но тест всегда терпит неудачу, так как выполнение методов всегда генерировать нулевые значения, как я не создал экземпляр из класса, только переменную из интерфейса типа.
Серьезно, почему вы тратите свое время: вы ТОЛЬКО ПОСЛЕ ЭТОЙ http://stackoverflow.com/questions/17108142/how-can-i-test-an-interface –
Тест не проходит? Ты уверен? Он даже не должен компилировать запрещенное использование ключевого слова 'interface'. – jlordo
Вы действительно не «проверяете интерфейс». Вы проверяете его реализацию. Если вы хотите протестировать взаимодействие с этим интерфейсом, вам нужна такая насмешливая библиотека, как Mockito. – fge