2

アノテーション @Test を使用してインターフェイスでメソッドを宣言し、それらを具象クラスで使用することは可能ですか。私の問題は、インターフェイスを実装するクラスに @Test ではなく @Override という注釈があることです。解決策はありますか、それとも親クラスを使用する必要がありますか?

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 に答える