我有很多類似的類(實際上它是具有一個父類的不同型別的事件)。它已經有大約 30 個班級,而且這個數字還會增長。每個類都有自己的處理邏輯,但每個類中都存在多個欄位。我想確保每個事件的流程都處理公共欄位。由于添加了新的事件型別和新的流程,它變得更加復雜。最好的方法是創建一些動態測驗來檢查公共欄位是否得到處理。說“動態”是指測驗自動發現新類并將它們放入測驗包的能力。我們正在使用 spock,但無法動態生成測驗的“where”部分。我提出了一種非常奇怪的方法,但它不起作用,但說明了我的想法:
def "dynamic test"() {
given:
def classes = methodToGetListOfEventClass()
when:
for(Class clazz : classes) {
ParentEvent event = clazz.getDeclaredConstructor().newInstance() as ParentEvent
service.sendEvent(event)
}
}
then:
for(Class clazz : classes) {
ParentEvent event = clazz.getDeclaredConstructor().newInstance() as ParentEvent
1 * sendExternalEvent("someId", event.getClass().getName(), Collections.emptyMap())
//check common fields exists
}
}
}
}
所以我只是嘗試為每個類創建一個實體,將其傳遞給事件處理程式并檢查創建的外部事件是否設定了所有公共欄位。它看起來很丑,而且不起作用。關于如何實施這種動態測驗有什么建議嗎?
uj5u.com熱心網友回復:
您可以使用動態
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/453597.html