2016-02-19 97 views
1

我有一個C#實體框架項目與數據,數據訪問和服務組件。配置管理員已啓用代碼覆蓋率(Sonarqube),目前顯示數據和數據訪問組件的覆蓋率爲0%。 1)儘管爲Service組件的類方法編寫的MSTest單元測試代碼正在執行類似於 - > Student s = new Student()(學生是Data組件中的公共類),我認爲它不會被計入作爲數據組件的覆蓋線?我證實,即使編寫虛擬測試來檢查是否在新的測試方法中調用構造函數,仍然會將無邏輯數據類Student標記爲未覆蓋。這是預期的嗎?單元測試覆蓋需要考慮什麼?

2)實體框架數據組件實際上沒有業務邏輯,因爲它只有流利的api配置類,存儲庫和工作單元類,它們自己不執行任何邏輯並依賴於基本實現。對我來說很明顯,我們也不能單元測試數據訪問組件。

有了上述要點,我是否可以正確地要求配置組排除參與代碼覆蓋度量的數據和訪問組件?

回答

0

我不能說你提到的技術,尤其是考慮到你沒有提及代碼的寫法。我的經驗是Java,Objective-C和Swift。

根據我的經驗,獲得80%以上的代碼覆蓋率並不難。特別是如果你可以應用一個好的模擬框架來協助你的測試用例。

如果你的測試覆蓋率工具告訴你,即使執行了一個構造函數,你的覆蓋率爲0%,那麼我會建議其中的一個。無論是涉及的類都沒有被覆蓋工具檢測到,因此沒有跟蹤執行情況,或者該工具沒有給您帶來好的結果。

第一個問題可以通過確保所有類都正確插裝來解決。第二個問題可以通過放棄您的覆蓋工具並獲得更好的解決方案來解決。

忽視課程是虛假的經濟。這就像聲稱你已經完成了房子的吸塵,因爲你排除了本週沒有使用的房間。你還沒有真正完成,那些房間仍然需要一個真空。

0
The rule in TDD is "Test everything that could possibly break" Can a getter break? Generally not, so I don't bother to test it. Besides, the code I do test will certainly call the getter so it will be tested. 

Junit test for POJO - >此鏈接描述POJO是否被測試!

基本規則,所有要在代碼庫中測試的東西。但是,POJO和自動生成的代碼庫會有例外。

在這種情況下,這取決於接受報告的團隊。使用Exclude from Sonar鏈接,我們可以排除模塊。

1. I presume it won't be accounted for as a covered line for Data component? 

取決於記錄報告的團隊。如何有開放的庫來檢查這些。 Pojo testing library

2. The Entity framework data component has virtually no business logic... 

在單元測試中沒有點在沒有業務邏輯。在這種情況下,請使用這些方法從聲納中跳過。 PS:因爲它沒有提到你使用的語言,所以它對Java通用 - 聲納 - Maven環境。

相關問題