0
在我的基於Java + Spring後端的項目中,我已將一組權限屬性提取到.properties file。我如何驗證所請求的參數是否存在於測試中的屬性文件中?集成測試以驗證彈簧屬性文件中的值
有沒有辦法將這個屬性文件集成到我的集成測試中?
屬性文件:
#Viewable Report Filter, Ordered list of states to be viewed in each step of the web-gui
TMSViewableReportFilter.allStates.verify=ONHOLD_HR,VERIFY,PREPARE,CONFIRM,CONFIRM_HR,CONFIRM_MGR,CONFIRM_RM,AGRESSO_IN_PROGRESS,CLOSED
TMSViewableReportFilter.allStates.manager=PREPARE,ONHOLD_FINANCE,ONHOLD_HR,AGRESSO_ERROR,CONFIRM,CONFIRM_HR,CONFIRM_MGR,CONFIRM_RM,AGRESSO_IN_PROGRESS,CLOSED
TMSViewableReportFilter.allStates.prepare=CONFIRM,CONFIRM_HR,CONFIRM_MGR,CONFIRM_RM,ONHOLD_FINANCE,CLOSED
TMSViewableReportFilter.allStates.confirm=CONFIRM_MGR,CONFIRM_HR,CONFIRM_RM,ONHOLD_HR,CLOSED
#Handleable Report Filter, Ordered list of states to be viewed in each step of the web-gui
TMSHandleableReportFilter.allStates.verify=APPROVE,ONHOLD_EMPLOYEE,ONHOLD_FINANCE,AGRESSO_ERROR
TMSHandleableReportFilter.allStates.manager=VERIFY
TMSHandleableReportFilter.allStates.prepare=PREPARE,ONHOLD_HR
TMSHandleableReportFilter.allStates.confirm.hr=CONFIRM_HR
TMSHandleableReportFilter.allStates.confirm.mgr=CONFIRM_MGR,CONFIRM_HR
TMSHandleableReportFilter.allStates.confirm.rm=CONFIRM_RM
以下是我訪問值:
@Autowired
public TMSHandleableReportService(
@Value("${TMSHandleableReportFilter.allStates.verify}") String[] verifyStringStates,
@Value("${TMSHandleableReportFilter.allStates.manager}") String[] managerStringStates,
@Value("${TMSHandleableReportFilter.allStates.prepare}") String[] prepareStringStates,
@Value("${TMSHandleableReportFilter.allStates.confirm.hr}") String[] confirmHRStringStates,
@Value("${TMSHandleableReportFilter.allStates.confirm.mgr}") String[] confirmMGRStringStates,
@Value("${TMSHandleableReportFilter.allStates.confirm.rm}") String[] confirmRMStringStates) {
handleStates = new HashMap<String, List<TMSState>>();
handleStates.put(
"verify",
loadTMSStateFromStringArray(verifyStringStates,
"TMSViewableReportFilter.allStates.verify"));
handleStates.put(
"manager",
loadTMSStateFromStringArray(managerStringStates,
"TMSViewableReportFilter.allStates.manager"));
handleStates.put(
"prepare",
loadTMSStateFromStringArray(prepareStringStates,
"TMSViewableReportFilter.allStates.prepare"));
handleStates.put(
"confirm.hr",
loadTMSStateFromStringArray(confirmHRStringStates,
"TMSViewableReportFilter.allStates.confirm.hr"));
handleStates.put(
"confirm.mgr",
loadTMSStateFromStringArray(confirmMGRStringStates,
"TMSViewableReportFilter.allStates.confirm.mgr"));
handleStates.put(
"confirm.rm",
loadTMSStateFromStringArray(confirmRMStringStates,
"TMSViewableReportFilter.allStates.confirm.rm"));
驗證是否在屬性文件中存在的關鍵是足夠的。即驗證TMSHandleableReportFilter.allStates.verify,TMSHandleableReportFilter.allStates.prepare的出現......等。
注入屬性值進入單元測試和寫測試方法,以確認它們是有效的? – chrylis
我想驗證這些值是在屬性文件中,即我想驗證集成測試中數據的存在,我不想使用數據單元測試我的課程已經完成 –
您需要做的只是爲您的測試使用包含您的屬性文件的應用程序上下文,之後您可以像使用服務一樣通過@Value自動裝載屬性並檢查它們 – mvb13