我目前正在爲Symfony2開發比特幣支付包。您可以在my github上查看。它不是(但我希望)完全開發了測試驅動,但我儘可能地將其作爲測試覆蓋。PHPUnit代碼實現接口的抽象類的覆蓋範圍
Bundle包含實現CommandInterface
接口的AbstractCommand
類。因爲它是一個抽象類,所以不需要實現每個接口的方法。大。
接下來,我有AbstractCommandTest
測試用例。它測試validateParameters
方法運作良好。測試涵蓋班級的每一行。但是......當我在IDE上運行測試覆蓋率分析(IntelliJ Idea with PHP Plugin)時,它顯示覆蓋率達到93%。這是非常奇怪的,因爲沒有線被標記爲紅色(我已經改變了默認配色方案,所以我看得很清楚;))。
問題是:爲什麼? 它是PHPUnit的bug嗎?或者,也許這是類模型建設問題?當我在AbstractCommand內部有抽象方法(並且沒有接口)時,它們也沒有被覆蓋。
我會盡快檢查並寫出有關結果。儘管如此 - 感謝您的回覆! 我嘗試...捕捉異常,因爲我想檢查異常的參數是否有效。 setExpectedException不允許這樣的檢查(afaik)。 – wikp
我檢查過並且...不,catch語句以及整個AbstractCommand類都被覆蓋了。當我用覆蓋面進行運行時,我的IDE中沒有「紅線」。 – wikp
我不知道自從最近兩天以來您是否已經改變了某些東西,但我剛剛克隆了您的項目並運行了單元測試。我的報道顯示AbstractCommand被100%覆蓋.. PHP 5.4.9,PHPUnit 3.7.1,XDebug 2.2.1 – Cyprian