Php 如何测试从另一个函数获取返回数据的函数?
我是新来PHP单元的,现在我遇到了一个进退两难的问题 功能结构是这样的:Php 如何测试从另一个函数获取返回数据的函数?,php,phpunit,Php,Phpunit,我是新来PHP单元的,现在我遇到了一个进退两难的问题 功能结构是这样的: function myfunc($arg) { $data = $anotherobject->myfunc2($arg); $diffdata = $anotherobject->myfunc3($arg); return $data. " ".arg. " ". $diffdata; } 如何验证输出是否正确?您应该只测试myfunc()输出。如果需要测试myfunc2()、myfunct3(
function myfunc($arg) {
$data = $anotherobject->myfunc2($arg);
$diffdata = $anotherobject->myfunc3($arg);
return $data. " ".arg. " ". $diffdata;
}
如何验证输出是否正确?您应该只测试myfunc()输出。如果需要测试myfunc2()、myfunct3(),请分别对它们进行测试
function test_myfunc() {
...
}
function test_myfunc2() {
...
}
function test_myfunc3() {
...
}
您应该只测试myfunc()输出。如果需要测试myfunc2()、myfunct3(),请分别对它们进行测试
function test_myfunc() {
...
}
function test_myfunc2() {
...
}
function test_myfunc3() {
...
}
编辑:
贾西尔当然也是对的。单元测试的目的是测试一个尽可能小的单元。因此,您还需要对myfunc2()和myfunc3()进行测试
编辑结束
,可以设置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'));
}
}
?>
编辑:
贾西尔当然也是对的。单元测试的目的是测试一个尽可能小的单元。因此,您还需要对myfunc2()和myfunc3()进行测试
编辑结束
,可以设置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'));
}
}
?>
要验证func1、func2还是func3?我要验证myfunc返回的数据是否正确。我有一点线索,它应该通过使用mock来完成?它实际上是一种面向对象的样式,myfunc2和MyFunc3来自另一个对象@qrazi提供的解决方案是最好的。是否验证func1、func2或func3?我想验证myfunc返回的数据是否正确。我有一点线索,它应该通过使用mock来完成?这实际上是一种面向对象的风格,myfunc2和MyFunc3来自另一个对象@qrazi提供的解决方案是最好的。他是PHP新手,我不认为他能处理PHPUnit测试LoL顺便说一句,你的解决方案很有价值,这让我很清楚。我也知道测试应该由func一个func来完成。他是PHP新手,我不认为他能处理PHPUnit测试。哈哈,顺便说一句,你的解决方案是值得的,这让我很清楚。我也理解测试应该由func一个func完成。