簡體   English   中英

在界面中提取jUnit測試方法

[英]Extrating jUnit test methods in interface

是否可以在帶有注解@Test的接口中聲明方法,並在具體類中使用它們。 我的問題是,實現接口的類具有批注@Override而不是@Test。 有解決方案還是必須使用父類?

使用abstract class而不是interface
您可以在absctract class中用注解@Test標記方法
1)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM