我試圖找出編寫一個重載方法調用超()作爲最後一步的單元測試的最佳方式。基本上,我想在使用基礎類之前按下參數。單元測試重寫的方法調用超()
這裏有一個方法的一個例子:
@Override
public JobExecution run(Job job, JobParameters passedParams)
throws JobExecutionAlreadyRunningException, JobRestartException {
JobParameters launchParameters;
if(passedParams.isEmpty()) {
launchParameters = jobParameterSetter.getJobParameters();
} else {
launchParameters = passedParams;
}
return super.run(job, launchParameters);
}
什麼它歸結爲是,我不能找個地縫,以檢查是在最終super.run()調用的參數,這是所有我想測試。基類有幾個依賴關係,實際上沒有必要測試這個類(更不用說更多的工作)。
組合是一個解決方案,但它是一個相當複雜的基類,我需要公開整個事物,而只需重寫一些方法。我也在考慮僞造基類來進行測試,這很簡單,但我不確定如何更改類路徑來運行單元測試(Eclipse用於單個測試; Maven用於構建測試 - 也許是一個問題呢?)。
我不得不想象這已被問過,但我找不到完全匹配。
不確定你在問什麼,你能澄清嗎?它是否要攔截對「super.run」的調用?你能寫一些僞代碼給我們更多的提示嗎?順便說一句,你可以寫你的方法爲一行:'返回super.run(job,passedParams.isEmpty()?jobParameterSetter.getJobParameters():passedParams);'較少的代碼是(通常)很好:) – Bohemian