首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试接口?

如何测试接口?
EN

Stack Overflow用户
提问于 2013-06-14 12:07:52
回答 4查看 9.3K关注 0票数 2

我想为一个接口做一个JUnit测试用例,因为您知道我不能从接口中生成一个对象,而且我不希望在这个测试中出现任何类名,我只想测试接口,并且只在测试中使用它的方法。

因此,我不能实例化如下所示的对象:

代码语言:javascript
复制
Interface obj = new Class(); 

因为我不习惯使用任何类方法,所以我不想将接口实例化为:

代码语言:javascript
复制
Interface var = new Interface{//methods};

因为我不想覆盖测试中的方法。

更新:

代码语言:javascript
复制
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)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-14 12:11:12

interface是一种契约。它没有逻辑可以检验。

您可以使用类似于Mockito的模拟框架来创建interface的实例,而不必手动对方法进行存根。但它只会把它们插在背景里。

你得问问自己你想测试什么?考虑到interface方法有,没有实现,就没有,没有需要测试的代码。

假设我有一个这样的interface

代码语言:javascript
复制
public interface DoesStuff {
    void doStuff();
}

有什么要测试的?我说过的唯一一件事就是我想要一个implements DoesStuffdoStuff的类。

票数 22
EN

Stack Overflow用户

发布于 2013-06-14 12:09:46

测试接口的唯一方法是创建实现接口的具体类,实例化接口并测试该类。您不能直接测试一个接口,因为正如您所知,它不能被实例化,没有任何需要测试的东西。这一点应该很明显:接口只是方法签名的集合,没有方法主体,因此没有需要测试的行为。

票数 7
EN

Stack Overflow用户

发布于 2013-06-14 12:09:59

在接口中没有测试功能(因为它不能被实例化;它没有方法实现)。所以JUnit不能用它来做任何事情。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17108142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档