簡體   English   中英

數據測試 / REST 保證 / Java 單元測試

[英]Data Testing / REST Assured / Java Unit Testing

因此,過去我曾使用過 rest 和其他 java 框架。

這更像是一個開放式問題,什么是測試數據的最佳/現代方式 sql / oracle ......等

所以基礎是你需要確認表中的數據等於特定的字符串/int/boolean...等。 測試需要能夠通過 maven 或可以集成到 Jenkins 類型的環境中的東西運行,以便在每次構建時運行。

您會建議什么是實現這一目標的最佳方式,您使用過的任何想法或工具都會受到歡迎。

我四處搜索,大多數人只是在做普通的單元測試。 但是,如果我想測試應該保留的生產數據 static 你會建議什么或者是最佳實踐。

謝謝弗倫特斯

發表一下我的看法,希望能澄清一些事情:

首先,數據測試確實是一個廣泛的話題,沒有一種“靈丹妙葯”和一種采用的方法。

通常,您可以在 spring 測試框架的幫助下測試您的 DAO 代碼(SQL 查詢),除其他外,該框架提供了一種在測試前加載一些數據、運行與數據庫交互的代碼、事務管理等的方法。

這種測試不是單元測試,它屬於集成測試的范疇,maven/Gradle 可以輕松支持,作為管道的一部分從 jenkins 運行。

還有一個名為DbUnit的工具也適用於該領域。

但是,這與“測試數據”不同。

讓我問一個問題,實際上有很多問題,都歸結為:你到底想測試什么? 數據一致的事實? 你在數據庫中有約束,你依賴它們嗎? 還是出於性能原因或您的用例可以證明的任何其他原因避免使用它們和諸如索引之類的東西?

您想在測試期間填充數據嗎? 它將如何影響生產中已經存在的數據?

你打算在測試中使用事務嗎? 比如我上面提到的spring測試框架可以在測試前自動開啟一個“測試事務”,測試后不管測試的實際結果如何,都會進行人工回滾。 這樣可以保證測試期間所做的所有更改都會回滾,並且測試后數據不會更改,但是問題是開放的嗎?

您是否計划隨着時間的推移測試架構更改。 通常,可以使用產品的新版本更改架構。 在這個領域,像liquidbase或flyway這樣的工具大放異彩。 例如,Flyway 提供了“原子”遷移的概念,您基本上可以應用一系列遷移將架構“轉換”到所需的 state。 雖然它不屬於測試工具的類別,但如果您願意,您可以從 maven 運行此遷移。

如您所見,這些問題沒有“普遍正確”的答案,不同的項目有不同的需求。 因此,如果您想討論認為適用於您的產品的特定方法,那么底線 - 歡迎您提供更多技術細節,但除此之外 - 我提到的所有框架/庫都可以作為您要求的工具關於,這里仍然有很多缺失的信息。

暫無
暫無

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

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