[英]Testing communications software in two different JVMs
我用 Java 編寫了一個通過套接字進行通信的模塊。 我想編寫一個單元測試來測試發送和接收。
為了真正測試系統,我想將發送方放在一個 JVM 中,將接收方放在另一個 JVM 中,然后一起測試它們。
從我在這里和各種博客文章中讀到的內容來看,這並不是真正的單元測試,而是集成測試。 好的,很好,但我仍然希望它成為構建過程的一部分。
是否有官方推薦的方法可以從 Junit 測試用例中啟動第二個 JVM? 如果沒有,是否有另一個為此設計的標准測試框架?
我在構建中使用了一些 shell 腳本。 不確定如何驗證結果,但是在自動構建中運行 Maven 的任何內容都可以檢查某些輸出文件或其他內容。 在構建/插件下我這樣做:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<version>1.3.2</version>
<executions>
<execution>
<id>Validate English and Term Customization</id>
<phase>test</phase>
<goals><goal>exec</goal></goals>
<configuration>
<executable>${project.basedir}/validate.sh</executable>
<workingDirectory>${project.basedir}</workingDirectory>
</configuration>
</execution>
</executions>
</plugin>
您基本上必須創建一個單獨的項目來通過網絡部署和測試您的代碼。 這在很多方面都將是痛苦的。 您可能認為“集成測試”和“許多方面的痛苦”在某種程度上是同義詞。
使集成測試保持最新可能是世界上進行更好的單元測試的最佳靈感。 我仍然會盡可能地嘗試單元測試。
即使您有一個完整的獨立集成測試項目,它是您構建的一部分,您可能希望每天一次/每周運行一次,而不是每次簽入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.