我认为预期结果是硬代码,但我在测试中的预期结果非常长且重复。我有大约 3 个相同的案例。
我应该在下面写下这个预期结果:
public function testConvertTargetByWeek()
{
$revenue = 100;
$week = 50;
$revenueByWeeks = convertRevenueByWeek($revenue, $week);
$expects = array(
1 => 2,
2 => 4,
...
50 => 100,
);
$this->assertEquals($expects, $revenueByWeeks);
}
或
public function testConvertTargetByWeek()
{
$revenue = 100;
$week = 50;
$revenueByWeeks = convertRevenueByWeek($revenue, $week);
for(range(1, 50) as $_week)
{
$expect[$week] = $revenue * ($_week / $week);
}
$this->assertEquals($expects, $revenueByWeeks);
}
最佳答案
如果它们相同,那么您可以将它们作为测试类的属性提取出来。我不一定认为将大值作为您的期望值有什么问题,因为在某些情况下它可能是必要的(测试 Controller 的响应等),但您也可以进一步分解您的测试并进行单独测试以测试是否大型响应的某些小节与模式匹配。
关于php - 期望很长时如何编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575024/