gpt4 book ai didi

phpunit 测试 expectedException 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:12 27 4
gpt4 key购买 nike

我正在尝试为 InvalidArgumentException 测试我的类,但我得到了

Tests\BarTest::should_receive_parameter Missing argument 1 for Itdc\Foo\Bar::__construct(), called in /mypath/foo/tests/BarTest.php on line 10 and defined

这是我使用的测试(BarTest.php)文件:

<?php namespace Tests;
use Itdc\Foo\Bar;
class BarTest extends \PHPUnit_Framework_TestCase {
/** @test */
public function should_receive_parameter() {
$this->setExpectedException('Exception');
$id = new Bar;
}
}

这是 Bar 类:

<?php namespace Itdc\Foo;
class Bar {
public function __construct($a) {
// do something
}
}

我曾尝试在评论部分提出 setExpectedException,也尝试使用 InvalidArgumentException,但没有成功。

任何关于我做错的建议都将不胜感激。

最佳答案

如果你直接捕获它,你可以 var_dump() 异常。

/** @test */
public function shouldThrowException() {
try {
new Foo();
} catch (\Exception $e) {
var_dump($e);
}
}

输出:

class PHPUnit_Framework_Error_Warning#19 (9) {
...

所以这里源码触发的不是异常而是错误,PHPUnit将错误转化为具体的异常。但它不将其包含在断言中。

尝试使用特定的异常名称:

/** @test */
public function shouldThrowException() {
$this->setExpectedException('PHPUnit_Framework_Error_Warning');
new Foo();
}

关于phpunit 测试 expectedException 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29940377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com