【发布时间】:2009-11-02 02:00:10
【问题描述】:
我正在尝试使用 PHP 学习单元测试。我知道对于刚刚进入 PHP 单元测试的人来说这有点太远了。无论如何,情况是这样的:
function doresize(&$mp3file)
{
global $tmpdir, $mp3info, $ffmpeg;
if(dirname($mp3file) != $tmpdir )
{
copy($mp3file , $tmpdir . '/' . $mp3file);
$mp3file = $tmpdir . '/' . $mp3file;
}
$mp3filenew = basename($file, '.swf') . "_new.mp3";
$command2 = "$mp3info -x \"$mp3file\" 2> /dev/null";
exec($command2, $buffer);
$mp3length = getLengthFromBuffer($buffer);
debug(" \$mp3length: $mp3length");
$lengthTranslated = roundLengthToSeconds($mp3length);
$maxlength = floor( $lengthTranslated / 2);
$halfmaxlength = floor( $maxlength / 2);
$start = rand($halfmaxlength, $maxlength);
$command3 = "$ffmpeg -y -acodec copy -ss $start -t $maxlength -i \"$mp3file\" $mp3filenew 2> /dev/null";
exec($command3);
@unlink($mp3file);
rename($mp3filenew, $mp3file);
}
从上面的代码中,我应该在测试用例中添加该代码的哪个方面?
仅供参考:上面的代码用于将 mp3 文件切成两半。
【问题讨论】:
-
嗯,单元测试更有可能也更适合用于面向对象的编程,即:你有一个类并且你使用断言来测试你的对象。在这种情况下,您有一个功能并且您想要进行单元测试。我建议您为此开设一个课程并使用 PhpUnit。
-
把这个 sn-p 转换成类很简单,我只是不知道如何检查生成的文件。
-
我不同意单元测试适用于 OOP 而不是结构性的(在这种情况下是函数)。单元测试是简单的本地测试。像许多其他测试一样,单元测试只是将预定义输入的输出与该输入的预期输出进行比较。这适用于结构化、函数式、声明式、逻辑编程以及面向对象。只是我的 2 美分。
-
@NawaMan:同意。单元测试没有等待 OOP 存在。
标签: php unit-testing mp3