带有驼峰大小写或下划线的 PHPUnit 测试类



当以 PHPUnit 遵循的 xUnit 样式编写测试用例时,似乎每个人都遵循函数名称的驼峰大小写约定:

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

我一直在用更"雄辩"的 PHPSpec 风格来命名我的方法:

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

这种风格将来会给我带来问题吗?就我个人而言,我发现它的可读性更强,也更容易回到。

一般来说:不,它目前不会给你带来任何问题(我看不到未来,所以我不确定这个答案在大约十年后会如何成立!

参考手册,只要

测试是名为 test* 的公共方法

PHPUnit 会将其视为一种测试。

PHPUnit 会将驼峰大小写的函数名称转换为适当间隔的描述以进行输出,因此test_it_has_a_fluent_interface将显示为 test it has a fluent interface(刚刚在版本 4.0.17 和 4.4.1 中测试)。

或者,您可以使用方法的文档块中的@test注释将其标记为测试方法。

你更有口才的风格并没有太大变化。它仍然是一团单词,这次有额外的分离。与其这样做,我建议基于以下模板的更多上下文方法:

methodUnderTest_ExpectedResultOrBehavior_OptionalConditions_OptionalContext

您的示例将是:

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

这也为您提供了测试方法主体的结构描述。

相关内容

  • 没有找到相关文章

最新更新