テストクラスが特定のインターフェイスをカバーするように強制する方法を教えてください。jUnitテストを実施してインターフェイス全体をカバーする
また、オーバーロードされたテストメソッドを記述するための規則がありますので、名前は一貫しています(現在の手法はmethodName + parameter1Type + parameter2Type + ...)。
私は最初のことをする良い方法があれば、2番目の質問がカバー/回避されることを望んでいます。
私の問題は、いくつかのインターフェイスを実装するクラスがあることです。私は春に注入されたサービスクラスをテストしているので、すべてに少なくとも1つのインターフェースがあります。
public interface MyInterface{
int doFoo(int input);
int doBar(int input);
}
がMyInterfaceImplを言うことができます、このインタフェースを実装しています
はとにかく私が実装したクラスを持っていると言います。
今私のテストクラスのようなものになります。上記の今
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class MyInterfaceImplTest{
private MyInterface = new MyInterfaceImpl(); //could inject it...
@Test
public void doFooTest(){
//content of test not relevant
}
@Test
public void doBarTest(){
//content of test not relevant
}
}
は、サイズの点では悪いことではないが、それは私がより大きなクラスですべてのテストを紹介してきたかどうかを知るのは難しいです、私は1つを逃した可能性があります。また、私はそれがオーバーロードされたメソッドのメソッド名を作成するanyoying見つける。私はクラスに機能を追加して、それを逃した可能性もあります。私がTDDをやっているなら、これはほとんど不可能だろうが、私はまだ確信したいと思う。私が書こうと思ったのは...
そして、それぞれの方法の前に@Testを貼りたいと思います。もちろん、テストに値を入れる必要があるので、これはうまくいかないでしょう。しかし、を実装すると、が実装され、メソッドが追加され、完全なインターフェースが実装されます。明確にするために、私は実際にテストでインターフェイスを実装するのではないと知っていますが、私はこのようなことができれば開発をスピードアップできると思います。
それよりも、私はJUnitの範囲内にないので、私が探しているものを、考えていたことを後でですか? – Quaternion