如何强制我的测试类覆盖特定界面?强制jUnit测试覆盖整个界面
也有一个写约定的测试方法,所以名称是一致的(我目前的技术是这样的:methodName + parameter1Type + parameter2Type + ...)?
我希望第二个问题将被覆盖/避免,如果有一个很好的方法来做第一个。
我的问题是我有类实现了一些接口。由于我正在测试Spring注入的服务类,所以至少有一个接口。
不管怎样说,我有一个实现类:
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
}
}
现在上面是不是坏在规模,但很难知道是否我已经覆盖了所有的测试在大课,我可能错过了一个。另外,我发现它为重载方法创建方法名称时感到懊恼。我也可以为课程添加功能,可能错过了。如果我正在做TDD,这几乎是不可能的,但我仍然想确定。我一直在试图写的是...
public class MyInterfaceImplTest implements MyInterface{
然后我想在每种方法前贴上@Test。当然这不会起作用,因为测试需要将值放入。但使用实现可以让IDE添加方法,并强制执行完整接口。为了清楚起见,我知道我并不想在测试中实际实现接口,但我认为如果我能做到这样的话,它可以加速开发。
它更多的后来我在想,所以我要找的是不是在JUnit的范围是什么? – Quaternion