2014-12-31 13 views
3

當編寫測試用例在礦井是PHPUnit的下面似乎每個人都遵循的函數名稱駱駝情況下約定的xUnit風格:PHPUnit的測試類,駱駝或下劃線

public function testObjectHasFluentInterface() 
{ 
    // ... 
} 

我已經命名我的方法有更「雄辯」PHPSpec風格:

public function test_it_has_a_fluent_interface() 
{ 
    // ... 
} 

這種風格會在未來給我造成問題嗎?就我個人而言,我發現它更具可讀性,並且易於返回。

回答

2

一般來說: 不,它目前不會給您帶來任何問題(我看不到未來,所以我不確定這個答案在大概十年後會如何回答!) 。

參考the manual,只要

測試是被命名爲test*

的PHPUnit將把它作爲一個公共測試方法。

PHPUnit會將駝峯函數名稱轉換爲適當間隔的輸出描述,因此test_it_has_a_fluent_interface將顯示爲test it has a fluent interface(僅在版本4.0.17和4.4.1中進行了測試)。

或者,您可以在方法的docblock中使用@test註釋將其標記爲測試方法。

0

你更有說服力的風格並沒有太大的改變。這仍然是一個單詞,這次與額外的分離。而不是做任何的,我建議基於以下模板多個情境的方法:

methodUnderTest_ExpectedResultOrBehavior_OptionalConditions_OptionalContext 

你的榜樣(S)會那麼:

public function testObject_HasFluentInterface 
public function saveSale_ThrowsException_WhenTransactionDateIsYesterday 
public function calculatePrice_ReturnsPrice_CalculatedIncludingPromotion 
public function generateXml_CreatesXml_AndSavesItToFile_WhenAtLeastOneEntityExists 

這也爲您提供了測試方法體之類的結構描述。