2011-10-27 13 views
1

我一直在試圖讓一些PEX樣本工作,但任何與DateTime.TryParse/DateTime.Parse產生令人不快的結果。 Pex沒有提出任何有趣的參數,如果我用可達到的含義來包裝它,它只會說1個錯過的目標。爲什麼Method Unistrumented DateTimeParse.TryParse(String,DateTimeFormatInfo,DateTimeStyles,DateTime&)?

我認爲這一定是因爲我接收到有關DateTimeParse.TryParse的消息沒有進行管理,但爲什麼它在第一時間沒有進行管理?爲什麼文檔「Microsoft Pex的參數化測試模式」使用DateTime作爲示例,如果它沒有任何有趣的內容?

回答

1

Uninstrumented意味着Pex沒有探索過代碼,也不知道它的路徑,所以無法確保它將探索代碼中的所有路徑,因爲它不知道如何探索路徑DateTime.TryParse,爲了生成輸出,然後將輸入到您的代碼路徑。我希望你能跟上。

因此,如果您允許Pex來測試DateTime類,它應該能夠計算出代碼中的路徑並生成一些有用的探索。看一下Parameterized Unit Testing with Microsoft Pex練習4,希望能夠解釋它比你引用的文檔好一點。 Pex只會提供您告訴它的對象,因爲這是一項潛在的昂貴操作(並且可能會以深圖形式結束)。

在Pex探索的結果中,Pex應該在信息欄中爲您提供關於需要使用儀器的類型的消息。

+0

謝謝!一年前我找不到這方面的東西..我曾經假設pex會有內置的程序集,但我明白這可能會相當昂貴。 – eisenpony

相關問題