使用单元测试从标准PHP函数捕获错误消息

时间:2016-12-14 08:53:38

标签: php unit-testing phpunit

标题上有点不清楚,但我们走了。

我正在对一个基本上运行strpos()的方法运行单元测试。像这样:

return strpos($this->getHeaderLine($headerName), $value) !== false;

现在我也想知道如果我提供一个空值会发生什么。提供空字符串时,我收到以下消息:

strpos(): Empty needle

这条消息本身很清楚,我不想在这里抛出异常。我想知道它是否返回此消息。我该怎么做呢或者我需要重写我的方法吗?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

     <form role="form" name="myForm" novalidate="">
       <div data-ng-show="myForm.controls.firstname.errors && myForm.controls.firstname.dirty" class="alert alert-danger alert-   dismissible" role="alert">
                <strong>FirstName is required (b/w 4-12 chars)</strong> 
            </div>

            <div data-ng-show="myForm.controls.lastname.errors && myForm.controls.lastname.dirty" class="alert alert-danger alert-dismissible" role="alert">
                <strong>LastName is required (b/w 1-10 chars)</strong> 
            </div>
    </form>

此测试通过,但如果您注释掉期望值,则会失败。 PHPUnit框架中有更多相关的类,如public function testWarning() { $this->expectException(PHPUnit_Framework_Error_Warning::class); $this->expectExceptionMessage("Empty needle"); strpos('meh', ''); } PHPUnit_Framework_Error_Deprecated等。