为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 单元测试未能通过所有测试

PHP 单元测试未能通过所有测试

PHP
杨魅力 2021-10-15 10:17:03
我正在创建一个带有一些单元测试的类,但我无法通过一些测试。示例如下所示。单元测试class OffsetTest extends \PHPUnit\Framework\TestCase{   /**    * @dataProvider getIllegalOffsets    * @expectedException \InvalidArgumentException    * @param $offset    */   public function testIllegalParameters($offset)    {        new \OffsetEncodingAlgorithm($offset);        $this->fail('Exception should be thrown');    }    /**     * Data provider for {@link OffsetTest::testIllegalParameters()}     * @return array     */    public function getIllegalOffsets()    {        return [            [-1],        ];    }}我的课<?phpclass Offset{    public function __construct(int $offset = 13)    {       try {            if ($offset < 0) {                throw new Exception('Exception should be thrown');            }        } catch (Exception $e) {            return $e->getMessage();        }        $this->offset = $offset;    }}测试进度是这样的
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

在测试testIllegalParameters()期望返回异常的 时,您不必使用try-catch块。只需if简单地在条件中抛出异常。


其次抛出测试用例中定义的正确类型的异常 InvalidArgumentException


class Offset

{

    public function __construct(int $offset = 13)

    {

        if ($offset < 0) {

            throw new InvalidArgumentException('Offset should be greater than equal to zero');

        } else {

            $this->offset = $offset;

        }

    }

}


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信