簡體   English   中英

Quarkus 測試:緩存模擬服務 (Cafine)

[英]Quarkus Testing: Caching a Mocked Service (Cafine)

目的:構建一個報表引擎並且我有多個服務調用:

  • 第一個服務獲取申請學徒的個人列表(這是模擬的,隨機生成 ID 等)
  • 第二個服務獲取個人必須響應的所需內容(模擬和生成以鏡像有效數據)
  • 第三個服務首先調用第一個和第二個服務,然后為提交的應用程序列表中的每個人生成所有響應。 (這是通過每個第一次服務調用隨機響應所有第二次服務調用來模擬和自動生成的。)

問題:在測試我的報表引擎時,我想運行需要所有三個服務的報表。 不幸的是,我需要將服務一 (1) 中的模擬應用程序注入服務三 (3) 或緩存模擬結果以供使用。 否則,在 MockedApplications 服務期間生成的隨機 ID 與模擬響應服務(調用 Former 以迭代並生成模擬響應)的隨機 ID 不匹配。 但是,如果我創建一個采用一組注入的應用程序的方法,則它無法正確實現基本服務。

這里發布在 zulip 上。

關於如何准確設置此測試場景的任何想法?

最親切的問候!

嘗試緩存模擬服務方法

@Mock
@ApplicationScoped
@CacheResult(cacheName = "mock-streams")
public class MockStreamsResource extends StreamsResource {
...

但是,這沒有用。 雖然沒有錯誤,但它在運行第三次調用時並沒有重新使用來自初始調用的應用程序(它也是模擬的,調用第一個模擬服務和第二個模擬服務。)

我沒有在應用程序服務期間隨機生成區分 ID,而是使用了一個可用的 UUID 池。 這使得每個測試都可以預測和重復。

因此,當生成答案的模擬服務調用應用程序服務時,它將匹配應用程序和響應的 account_id 上的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM