问题描述
我在混合环境中工作。有些部分是程序编写的,有些是面向对象的,有些则遵循功能范式。
在重构代码时,我们正在对所有代码实施单元测试,而我目前处于代码的功能范围。但是,我见过的有关PHPunit的所有说明都是关于测试对象和类内部的方法的。
我听说过 在功能代码上进行单元测试更容易,但从未见过示例。您如何使用PHPunit测试功能代码?
function foo($bar,$baz){
if (!isset($bar["foo"]){
return false;
}
return foobar($bar["foo"],$baz);
}
<?PHP
declare(strict_types=1);
require("../backend/foo.PHP");
use PHPUnit\Framework\Testcase;
final class functionTest extends TestCase{
public function testTheFooFunction(): void{
// ????
}
}
使用PHPunit,对此功能进行单元测试会是什么样?我的test.PHP甚至在正确的轨道上吗?
解决方法
测试方式与其他任何单位相同。这里没什么特别的
function foobar($foo,$baz) {
return $foo + $baz;
}
function foo($bar,$baz){
if (!isset($bar["foo"]) {
return false;
}
return foobar($bar["foo"],$baz);
}
public function testTheFooFunction(): void{
$bar = ['foo' => 1];
$baz = 2;
$result = foo($bar,$baz);
self::assertEquals(3,$result);
}