正在研究Jenkins插件并同时评估单元测试软件,并获得了学习机会。该软件为此方法编写了一个测试用例 -
public boolean isApplicable(Class<? extends AbstractProject> aClass) {
// indicates that this builder can be used with all
// kinds of project types
return true;
}
看起来很简单。测试用例虽然没有编译,但我还没有弄清楚如何通过使用通配符的有限知识来解决它。我目前的尝试 -
AbstractProject ap = new FreeStyleProject(null, null);;
Assert.assertTrue(testedObject.isApplicable(ap));
(FreeStyleProject扩展AbstractProject)
这会显示错误消息
FitnesseBuilder.DescriptorImpl类型中的方法isApplicable(Class)不适用于参数(AbstractProject)
我已经尝试了各种类型来传递给那个参数,但似乎无法让它接受任何东西。有人想给我一个快速的课程吗?
答案 0 :(得分:4)
尝试Assert.assertTrue(testedObject.isApplicable(FreeStyleProject.class));
,因为它需要一个Class而不是AbstractProject
答案 1 :(得分:4)
您需要传递Class<T>
个对象,而不是该类的实例:
// AbstractProject ap = new FreeStyleProject(null, null);
Assert.assertTrue(testedObject.isApplicable(FreeStyleProject.class));
当然,FreeStyleProject
类需要扩展AbstractProject
(因为当前代码的第一行编译,它已经这样做了。)