1

JUnit 3 で次のバージョンのテストを行い、それを JUnit 4 に変換しようとしましたが、成功しませんでした。アイデアは、インターフェース、たとえばインターフェースの実際のテストを行うベーステストケースを持つことServiceです。ServiceImpl基本テスト ケースを使用して、クラスをテストしたいと考えています。

public abstract class ServiceBaseTest extends TestCase {

   保護されたサービス サービス。
   保護された抽象サービス getService();

   @オーバーライド
   public void setUp() {
      サービス = getService();
   }

   public void testMethod(){
      //テストコード
   }
   ...
}

ServiceImplTest次のようなクラス:

public class ServiceImplTest extends ServiceBaseTest {
   @オーバーライド
   public void setUp() {
      サービス = 新しい ServiceImpl();
   }
}

TestCase拡張機能を削除して、メソッドに @BeforeClass を使用できることを認識していsetupます。ただし、違いは@BeforeClass、メソッドが である必要があるsetupことstaticです。これは、キーワードgetService()と競合するため、静的にできないため、私にとっては注意が必要です。abstract

Question:JUnit 4を使用して、代替手段を実装するクリーンな方法はありますか?

4

2 に答える 2

1
protected static Service service = null;

@Override
public void setUp() {
   if(service == null)//Check null
      service = new ServiceImpl();
}
于 2010-10-26T05:40:25.733 に答える
1

@Before アノテーションを使用することはできませんか?

于 2010-10-01T15:43:54.953 に答える