[英]Kogito Debugging DMN Test Scenarios
使用 Kogito 我正在嘗試為返回數組的 DMN 文件創建測試場景。 為了測試,我創建了一個簡單的 DMN,無論輸入如何,它都會返回一個對象數組。
但是如果我向返回數組添加一個值,測試就會失敗,如果我有零個元素作為預期結果,它們就會通過,這是沒有意義的。 如果從測試中執行,看起來 DMN 不會返回任何值。
如果我在 api 上運行它,它總是按預期返回數組上的一個元素。
我一直在試圖弄清楚如何在 Visual Studio 上調試它,但沒有運氣
預期的結果是這樣寫在文件上的,但再次出現沒有結果回來
[{"name":"\"jose\"", "ages":"[12,13]"}]
基本上,一些調試方法會很棒,或者任何可以為我指明正確方向的幫助。
提前致謝
何塞
這里有兩點需要解決,一是與您遇到的錯誤有關,二是要了解如何在運行階段調試scesim
資產。
scesim
資產在類型中嵌套 Collection 的情況下有一個眾所周知的限制,這就是您的案例。 特別是,您在預期列中為您的Simple
類型定義了以下列表: 這里的問題是ages
字段,它是一個嵌套列表。 提供[12,13]
作為該列表的參數,在形式上是正確的。 但是,由於我提到的限制,它目前不起作用。 您可以使用一種解決方法,即使用表達式定義列表,如以下屏幕截圖所示:
表達? = {"name":"jose","ages":[12, 13]}
? = {"name":"jose","ages":[12, 13]}
表示檢查實際值 ( ?
) 與包含值為jose
的字段name
和帶[12, 13]
的字段ages
的對象是否相等[12, 13]
作為值。 請注意,根據您定義的邏輯,您期望一個只有一項的Simple
類型列表。 如果您的Simple
類型返回包含多個項目的列表,則表達式應由 List 而不是單個對象組成(例如? = [{"name":"jose","ages":[12, 13]}, {"name":"john","ages":[1, 3]}, .. ]
我們知道這並不理想,我們正在定義一種改進這種用例體驗的方法。請繼續關注 KIE 頻道以了解更多或給予提示以改善這一點!
scesim
文件,讓我們使用mvn clean install
運行它。 正如您所報告的,它將失敗,但有一個例外。 讓我們嘗試在堆棧跟蹤中報告的行之一中放置一個斷點(例如,在org.drools.scenariosimulation.backend.runner.AbstractScenarioRunner.singleRunScenario(AbstractScenarioRunner.java:125
) 在該行上放置一個斷點。 現在,要在調試模式下啟動scesim
引擎,請轉到您的scesim
激活器類(通常命名為KogitoScenarioJunitActivatorTest
)。 在這里,您可以像 Junit 測試類一樣運行/調試您的scesim
資產。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.