2013-10-30 61 views
1

我在一個Jenkins插件和評估單元測試軟件在同一時間,並提出了一個學習的機會。該軟件爲此方法編寫了測試用例 -如何測試一個方法,需要類<T>

public boolean isApplicable(Class<? extends AbstractProject> aClass) { 
     // indicates that this builder can be used with all 
     // kinds of project types 
     return true; 
    } 

看起來很簡單。雖然測試用例不能編譯,但我無法弄清楚如何通過使用通配符的有限知識來解決這個問題。我的當前attempt-

AbstractProject ap = new FreeStyleProject(null, null);; 
    Assert.assertTrue(testedObject.isApplicable(ap)); 

(FreeStyleProject延伸AbstractProject)

這使錯誤消息

在類型FitnesseBuilder.DescriptorImpl方法isApplicable(類)是不適用的參數(AbstractProject)

我嘗試了各種類型傳遞給該參數,但似乎無法讓它接受任何東西。任何人都想給我一個快速的教訓?

+0

非常感謝,爲我解決了:) –

回答

4

的實例,您需要通過Class<T>對象,而不是一個實例類

// AbstractProject ap = new FreeStyleProject(null, null); 
Assert.assertTrue(testedObject.isApplicable(FreeStyleProject.class)); 

當然,FreeStyleProject類需求以擴展AbstractProject(因爲您當前代碼的第一行編譯,它已經這樣做了)。

4

嘗試Assert.assertTrue(testedObject.isApplicable(FreeStyleProject.class));,因爲它需要類而不是AbstractProject

相關問題