我是PHP部门的新手,现在我陷入了两难境地。
功能结构是这样的:
function myfunc($arg) {
$data = $anotherobject->myfunc2($arg);
$diffdata = $anotherobject->myfunc3($arg);
return $data. " ".arg. " ". $diffdata;
}
如何验证输出是否应该是什么?
答案 0 :(得分:2)
修改强>: Jasir当然也是对的。单元测试的目的是测试尽可能小的单元。所以你也要进行测试来覆盖myfunc2()和myfunc3()。
编辑结束
Using a stub,您可以设置myfunc2()和myfunc3()以返回已知值。然后你可以像往常那样断言myfunc的返回。
有些事情:
<?php
require_once 'SomeClass.php';
class StubTest extends PHPUnit_Framework_TestCase
{
public function testStub()
{
// Create a stub for the SomeClass class.
$stub = $this->getMock('SomeClass');
// Configure the stub.
$stub->expects($this->any())
->method('myfunc2')
->will($this->returnValue('foo'));
$stub->expects($this->any())
->method('myfunc3')
->will($this->returnValue('bar'));
// Calling $stub->doSomething() will now return
// 'foo'.
$this->assertEquals('foo somearg bar', $stub->myfunc('somearg'));
}
}
?>
答案 1 :(得分:1)
您应该只测试myfunc()输出。如果你需要测试myfunc2(),myfunct3(),可以对它们进行单独的测试。
function test_myfunc() {
...
}
function test_myfunc2() {
...
}
function test_myfunc3() {
...
}