当前位置:  开发笔记 > 编程语言 > 正文

使phpunit捕获php7 TypeError

如何解决《使phpunit捕获php7TypeError》经验,为你挑选了2个好方法。

我试图验证php7函数只接受整数.

这是班级:

id = $id;
    }
}

这是测试:

getPostEntity()->setId($input);
        }
    }
}

我得到的错误是:

TypeError: Argument 1 passed to Post::setId() must be of the type integer, string given, called in /path/test/PostTest.php on line 35

有可能验证这样的错误吗?还有,运行这样的支票是否有意义?



1> Sebastian Be..:

是的,您可以TypeError使用与其他任何异常相同的方式进行测试.

但是,我不会测试PHP在类型不匹配的情况下发出类型错误.这是一种使用PHP 7代码变得多余的测试.



2> sentenza..:

可悲的是,TypeError 它不是Exception(参考)的子类,而是它的延伸Error.他们唯一真正分享的是Throwable界面.ThrowMatcher实际上无法捕获TypeError.

如果查看代码 src/PhpSpec/Matcher/ThrowMatcher.php,可以看到PHPSpec捕获继承' Exception'的异常,然后检查该异常的实例类型.

另见这个答案.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有