PHPUnit没有捕获异常

PHPUnit not catching exception

寻找一些帮助来编写更好的代码/测试,但似乎偶然发现了一个问题 - 任何帮助都将非常感激。

脚本:

1
2
3
4
5
6
7
$feed = 'App\Http\Services\Supplier\Feeds\' . ucwords($feedName) ."Feed";

if (class_exists($feed)) {
    return new $feed($headerRowToSkip);
} else {
    throw new Exception("Invalid feed type given.");
}

测试:

1
2
3
4
5
 public function testBuild()
{
    SupplierFeedFactory::build('MusicMagpie', 1);
    $this->expectExceptionMessage("Invalid feed type given.");
}

错误:

有1次失败:

1)测试功能帐户供应商供稿 SupplierFeedFactoryTest :: testBuild
无法断言抛出"异常"类型的异常。


PHPUnit方法是文字的,EXPECTexception所以你要做的就是在异常实际发生之前把它放在那里。

1
2
3
4
5
6
public function testBuild()
{
    $this->expectException('Exception');
    $this->expectExceptionMessage("Invalid feed type given.");
    SupplierFeedFactory::build('MusicMagpie', 1);
}