2015-09-18 70 views
0

SonarLint規則2760:順序測試不應該檢查相同的條件下SonarLint:S2760 - 可能的錯誤

這擊中運行的方法,並返回了許多假陽性的報告。我可以給最簡單的例子是這樣的:

if (_rnd.NextDouble() < Settings.RandomChance) 
{ 
    MethodA(); 
} 
if (_rnd.NextDouble() < Settings.RandomChance) 
{ 
    MethodB(); 
} 

期望的結果是,有時治法運行時,有時方法b運行,有時兩者都運行。

+1

只是一個說明:據我所知,不能保證它們中的任何一個都能運行。 –

+0

是的,也是。 =) - 指出Sonar不應該將這些類型的項目標記爲相同。將它分成2條規則可能是件好事 - 在那不檢查方法... –

回答

1

我們有這個規則已經,您可以點擊這裏一些討論:

似乎有很多的角落案件https://jira.sonarsource.com/browse/RSPEC-2760這個規則。我們絕對不希望保留這條規則的例外列表,因此我們最安全的選擇是默認禁用該規則。我爲此創建了一個GitHub問題(https://github.com/SonarSource/sonarlint-vs/issues/419),您可以在其中添加更多示例。

+0

謝謝,我已經在那裏張貼我的想法。在發佈到SO之前,我現在也知道應該先看哪裏。 –