我想为一个接口做一个JUnit测试用例,因为您知道我不能从接口中生成一个对象,而且我不希望在这个测试中出现任何类名,我只想测试接口,并且只在测试中使用它的方法。
因此,我不能实例化如下所示的对象:
Interface obj = new Class(); 因为我不习惯使用任何类方法,所以我不想将接口实例化为:
Interface var = new Interface{//methods};因为我不想覆盖测试中的方法。
更新:
i have an interface and a class which implements it:
public interface inter {
public void method1();
public void method2();
}
public class BlaBla implements inter{
@override
public void method1(){//stuff}
@override
public void method2(){//stuff}
}我想测试BlaBla,但是在我的测试中处理它的接口(inter)。
发布于 2013-06-14 12:11:12
interface是一种契约。它没有逻辑可以检验。
您可以使用类似于Mockito的模拟框架来创建interface的实例,而不必手动对方法进行存根。但它只会把它们插在背景里。
你得问问自己你想测试什么?考虑到interface方法有,没有实现,就没有,没有需要测试的代码。
假设我有一个这样的interface
public interface DoesStuff {
void doStuff();
}有什么要测试的?我说过的唯一一件事就是我想要一个implements DoesStuff到doStuff的类。
发布于 2013-06-14 12:09:46
测试接口的唯一方法是创建实现接口的具体类,实例化接口并测试该类。您不能直接测试一个接口,因为正如您所知,它不能被实例化,没有任何需要测试的东西。这一点应该很明显:接口只是方法签名的集合,没有方法主体,因此没有需要测试的行为。
发布于 2013-06-14 12:09:59
在接口中没有测试功能(因为它不能被实例化;它没有方法实现)。所以JUnit不能用它来做任何事情。
https://stackoverflow.com/questions/17108142
复制相似问题