php - 期望很长时如何编写单元测试

标签 php unit-testing testing

我认为预期结果是硬代码,但我在测试中的预期结果非常长且重复。我有大约 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/

相关文章:

javascript - JqG​​rid 分页器在每个页面加载相同的数据

c# - 将 IQueryable<T> 转换为 DbSet<T>

c# - 如何初始化 IOption<AppSettings> 以对 .NET 核心 MVC 服务进行单元测试?

java - 单元测试的意义何在?

python - 如何测试 Pyramid Chameleon 模板?

php zipArchive 只解压缩某些扩展

php - 没有任何内容会插入到我的数据库中

Php Mysql插入查询在if条件或直接条件下不起作用

unit-testing - 如何为需要引用“静态生命周期并实现同步”的函数提供模拟值?

testing - 圈复杂度——绘制这条java语句的控制流图