Java 如何测试没有实现的接口

Java 如何测试没有实现的接口,java,junit,mocking,Java,Junit,Mocking,我有一个接口及其实现。我正在为JIRA开发一个插件。我刚刚决定了它的设计,但没有实现。当它没有任何方法时,我有点迷茫于如何测试它。有人能帮忙吗?谢谢 package com.cerner.jira.plugins.esig.servicemanager; import java.util.List; import com.atlassian.jira.issue.Issue; import com.cerner.jira.plugins.esig.issuetab.*; public in

我有一个接口及其实现。我正在为JIRA开发一个插件。我刚刚决定了它的设计,但没有实现。当它没有任何方法时,我有点迷茫于如何测试它。有人能帮忙吗?谢谢

package com.cerner.jira.plugins.esig.servicemanager;

import java.util.List;

import com.atlassian.jira.issue.Issue;
import com.cerner.jira.plugins.esig.issuetab.*;

public interface EsignatureManager {

    public List<EsignatureTabPanelData> getElectronicSignatures(Issue paramIssue);

}
package com.cerner.jira.plugins.esig.servicemanager;
导入java.util.List;
导入com.atlassian.jira.issue.issue;
导入com.cerner.jira.plugins.esig.issuetab.*;
公共接口EsignatureManager{
电子签名公开列表(发布号);
}
我有一个实现这个的类

package com.cerner.jira.plugins.esig.

import java.util.List;
import com.cerner.jira.plugins.esig.customfields.UnameCustomField;

import com.atlassian.jira.issue.Issue;
import com.cerner.jira.plugins.esig.issuetab.EsignatureTabPanelData;

public class EsignatureManagerImpl implements EsignatureManager {

    UnameCustomField unamecustomfield;

    @Override 
    public List<EsignatureTabPanelData> getElectronicSignatures(Issue paramIssue) {
        return null;
    }

}
package com.cerner.jira.plugins.esig。
导入java.util.List;
导入com.cerner.jira.plugins.esig.customfields.UnameCustomField;
导入com.atlassian.jira.issue.issue;
导入com.cerner.jira.plugins.esig.issuetab.EsignatureTabPanelData;
公共类EsignatureManagerImpl实现EsignatureManager{
UnameCustomField UnameCustomField;
@凌驾
公共列表getElectronicSignatures(问题){
返回null;
}
}

一个接口不能像编译接口那样进行测试,因为它可以完成所有应该完成的功能。你不能测试什么都不做的东西,这是一个接口的情况。

我想你可以从这样的东西开始,随着你对你的方法了解的更多,改变你的测试

@Test
public void getElectronicSignatures(){
    fail("Not implemented yet");
}

测试实现接口的类。如果您正在进行测试驱动的开发,那么编写测试以查找您希望getSignatures返回的内容,可能是指定类型的非空列表?如果没有,那么先在类中实现接口成员,然后在接口成员完成预期任务后,为接口成员的类实现编写测试方法。

我不知道这是否是对特定(JIRA特定)用例的回答,但是:可以测试接口:您可以使用反射来检查接口是否提供了特定的方法、注释等(但我假设您在JIRA上下文中的意思是“测试”)。

您想测试什么?空的实现?为什么要麻烦呢?EsignatureManager有一个方法(getElectronicSignatures),我不明白你为什么说它没有方法?你在做TDD吗?如果是这样,请编写一个测试,期望您的方法返回该类型的非空列表。如果不编写实现,则相应地编写测试。您可以像编写设计框架一样编写测试框架。在实际中,没有什么可以测试,因为什么都没有实现。但随着实现的推进,您可以通过一些有意义的测试不断更新测试框架。。实际上我还没有为它写任何东西。。我知道它会失败,因为它一无所有。但是有没有办法嘲笑这个班?这就是我所看到的。嗯,不完全是在这一点上。。也许在我开始实现这个框架之后,它会变得特定于Jira。现在没关系了