2
@Test 주석이있는 인터페이스에서 메소드를 선언하고이를 구체적인 클래스에서 사용할 수 있습니까? 내 문제는 인터페이스를 구현하는 클래스에 @Test가 아닌 @Override 주석이 있다는 것입니다. 솔루션이 있습니까? 아니면 부모 클래스를 사용해야합니까?인터페이스에서 jUnit 테스트 메소드 추출하기
@Test 주석이있는 인터페이스에서 메소드를 선언하고이를 구체적인 클래스에서 사용할 수 있습니까? 내 문제는 인터페이스를 구현하는 클래스에 @Test가 아닌 @Override 주석이 있다는 것입니다. 솔루션이 있습니까? 아니면 부모 클래스를 사용해야합니까?인터페이스에서 jUnit 테스트 메소드 추출하기
interface
대신 abstract class
을 사용하십시오.
당신은 우리가 얻을 @Test
1)
public interface ITest {
@Test
public void simpleTest();
}
public class SimpleTest implements ITest
{
@Override
public void simpleTest()
{
Assert.assertTrue(true);
}
}
주석과 absctract class
의 메소드를 표시 할 수 있습니다
Tests in error:
initializationError(com.company.tester.SimpleTest)
2)
public interface ITest {
public void simpleTest();
}
public class SimpleTest implements ITest
{
@Test
@Override
public void simpleTest()
{
Assert.assertTrue(true);
}
}
모든 하시다 잘 rks, 시험은 통과된다!
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
3) 추상 클래스
public abstract class ATest {
@Test
public abstract void simpleTest();
}
public class SimpleTest extends ATest
{
@Override
public void simpleTest()
{
Assert.assertTrue(true);
}
}
public class SecondTest extends ATest
{
@Override
public void simpleTest()
{
Assert.assertFalse(false);
}
}
시험을 잘 통과!
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
구현 클래스에서'@ Override'와'@ Test'를 모두 사용할 수 있습니다 - 이것이 문제입니까? – assylias
그러나 인터페이스에서'@ Test'를 사용하고 구체적인 클래스에서 인터페이스를 구현하면 Eclipse는'@ Override'를 사용하고 jUnit은'@ Test' 주석을 자동으로 인식하지 못합니다. 구체적인 클래스에서 수동으로 추가하지 않고'@ Test' 주석을 얻고 싶습니다. – Janus
테스트 클래스에 인터페이스를 사용하는 이유는 무엇입니까? 이것은 매우 드문 경우입니다. –