PHPUnit覆盖率测试elseif错误

PHPUnit coverage test elseif error

好的,所以我正在查看代码,并且正在进行 php 单元覆盖率测试。在上述测试中,我只得到 2 行不能正常工作:

private function getEarliestDateOrNull($snapshotDate = null, $preexistingEpisodeDate = null)
{
    $date = null;

    if ($snapshotDate instanceof DateTime && $preexistingEpisodeDate instanceof DateTime) {
        $date = $snapshotDate < $preexistingEpisodeDate ? $snapshotDate : $preexistingEpisodeDate;
    } elseif ($snapshotDate instanceof DateTime) {
        $date = $snapshotDate;
    } elseif ($preexistingEpisodeDate instanceof DateTime) {
        $date = $preexistingEpisodeDate;
    }

    return ($date instanceof DateTime) ? $date->format('m/d/Y') : null;
}

问题出在我的 getEarliestDateorNull 中,这两个 elseif 语句是测试出于某种原因没有读取的唯一语句。有没有办法从 elseif 语句中更改它们?我的意思是说,如果可以有一个 SWITCH 实现。测试在 php 7.

中运行

经过反复试验,如果将其设置为 else if 而不是 elseif,它应该可以工作:)