【问题标题】:PHPUnit - Test fopen, fwrite returnPHPUnit - 测试 fopen,fwrite 返回
【发布时间】:2016-08-04 18:30:09
【问题描述】:

我用 PHPUnit 测试了一个带有内容的函数:

$fp = fopen($file_path,'wb');

if( $fp === false ) {
     ...
}

$ret = fwrite($fp, $content) ;
if( $ret === false ) {
     ...
}

我有一个问题,fopen 总是返回一个 resourcefwrite 总是返回一个 integer 值,但我希望他们返回 FALSE。 我应该怎么做? 谢谢大家:)。

【问题讨论】:

  • 我不明白!你想测试什么?例如fopen 将返回false,如果文件不存在,您可以使用@ 取消警告!
  • 谢谢,当文件不存在时,我的代码无法运行if( $fp === false ),我不知道原因。
  • 尝试将wb改为r
  • 谢谢,但结果相同。
  • 因为wb文件已创建尝试更改文件名。

标签: php unit-testing phpunit


【解决方案1】:

您可以编写一个 FileHandler 类来封装所有文件处理部分,这样您就可以在测试中为其注入一个存根,并设置存根以在不同的测试中返回您想要的内容。您不必测试库函数是否有效,只需按预期调用它们即可

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2013-06-20
    • 2020-12-09
    • 2015-12-04
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多