簡體   English   中英

如何編寫集成測試?

[英]How to write integration tests?

我的團隊使用實體框架 6 ORM 開發了一個 Web API 2 應用程序。

我們的應用程序充當電子郵件,它的主要目的和作用是從一個客戶向另一個客戶發送一封信。

由於這是應用程序的主要用途,我們都希望進行集成測試,以確保我們正確發送了一封信件。 那是因為我們不想意外插入會破壞它的代碼。

在發送信件時,發生的主要動作以及我們想要測試的是——

  • 通過HTTP Post方法收到一封信並在服務器上進行驗證
  • 信件被保存到數據庫中
  • 這封信是連載的。
  • 序列化的信件通過外部模塊發送到指定的目的地。
  • 該信件在接收方反序列化。
  • 該信件被添加到收到的客戶的數據庫中。

我問這個是因為我對如何解決這個問題一無所知,但我真的想要那種我可以依賴的測試。

應該如何設置測試? 我從哪里開始? 如何通過測試實現實際的信件發送並確保其有效?

它不一定是端到端的測試。

謝謝

編輯:

我不介意測試需要很長時間,它們可以在晚上運行,但我希望他們盡可能多地驗證應用程序主要部分是否按預期工作。

我會設置多個非實際代碼測試來驗證您的邏輯:

  1. 收到信,這是邏輯
  2. 驗證對數據庫的 save 方法是否僅在應調用時調用
  3. 驗證代碼的序列化/反序列化位
  4. 驗證目標選擇器模塊是否正常工作。

一旦您進行了這些“非調用”測試,您就會知道系統的所有部分都可以單獨正常工作。 然后,您可以設置帶有某種標記(即 TestCategory("SUPERSLOW"))的單元測試,然后在集成測試運行期間針對一組模擬收件人手動運行該單元測試以進行驗證,而不是作為 CI 的一部分。

這里的關鍵詞是:

  • 固體原則
  • 關注點分離
  • 嘲諷
  • 持續集成
  • 控制反轉

暫無
暫無

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

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