如何对功能代码进行单元测试? (不是面向对象)
How do I unit test functional code? (not OOP)
我在混合环境中工作。有些部分是按过程编写的,有些是面向对象的,有些遵循功能范式。
在重构代码时,我们正在对遇到的所有代码实施单元测试,我目前在代码的功能区域。然而,我所见过的关于 phpunit 的所有说明都是关于对象内部的测试方法和 类.
我听说对功能代码进行单元测试更容易,但从未见过示例。您如何使用 phpunit 测试功能代码?
例如,如果我有一个函数
function foo($bar, $baz){
if (!isset($bar["foo"]){
return false;
}
return foobar($bar["foo"], $baz);
}
我目前有一个 test.php 看起来像这样:
<?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);
}
我在混合环境中工作。有些部分是按过程编写的,有些是面向对象的,有些遵循功能范式。
在重构代码时,我们正在对遇到的所有代码实施单元测试,我目前在代码的功能区域。然而,我所见过的关于 phpunit 的所有说明都是关于对象内部的测试方法和 类.
我听说对功能代码进行单元测试更容易,但从未见过示例。您如何使用 phpunit 测试功能代码?
例如,如果我有一个函数
function foo($bar, $baz){
if (!isset($bar["foo"]){
return false;
}
return foobar($bar["foo"], $baz);
}
我目前有一个 test.php 看起来像这样:
<?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);
}