2

是否可以在带有注释 @Test 的接口中声明方法并在具体类中使用它们。我的问题是,实现接口的类有注解@Override 而不是@Test。有解决方案还是我必须使用父类?

4

1 回答 1

1

使用abstract class而不是interface. 您可以使用注释1)
标记方法absctract class@Test

public interface ITest {
   @Test
   public void simpleTest();
} 

public class SimpleTest implements ITest
{
   @Override
   public void simpleTest()
   {
      Assert.assertTrue(true);
   }
}  

我们得到

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);
   }
}  

一切正常,测试通过!

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
于 2012-08-29T14:07:37.213 回答