在PHPUnit遵循的xUnit样式中编写测试用例时,似乎每个人都遵循函数名称的驼峰案例约定:
public function testObjectHasFluentInterface()
{
// ...
}
我一直在用更“雄辩”的PHPSpec风格命名我的方法:
public function test_it_has_a_fluent_interface()
{
// ...
}
这种风格将来会给我带来麻烦吗?就个人而言,我发现它更具可读性,更容易回归。
答案 0 :(得分:3)
一般来说: 不,它目前不会给你带来任何问题(我无法看到未来,所以我不确定这个答案在大约十年之后会如何实现!)。 / p>
只要
,请参阅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
注释将其标记为测试方法。
答案 1 :(得分:-1)
你更有说服力的风格并没有太大变化。它仍然是一个词汇,这次是额外的分离。我建议使用基于以下模板的更多上下文方法,而不是采用其中任何一种方法:
methodUnderTest_ExpectedResultOrBehavior_OptionalConditions_OptionalContext
您的示例将是:
public function testObject_HasFluentInterface
public function saveSale_ThrowsException_WhenTransactionDateIsYesterday
public function calculatePrice_ReturnsPrice_CalculatedIncludingPromotion
public function generateXml_CreatesXml_AndSavesItToFile_WhenAtLeastOneEntityExists
这也为您提供了测试方法体的结构描述。