我从下面的测试开始,一切都很好:
class Search_Model_Mapper_Search_GetDbTableTest extends PHPUnit_Framework_TestCase
{
public function testGetDbTable()
{
$mapper = new Search_Model_Mapper_Search();
$dbClass = new ReflectionClass($mapper->getDbTable('Search_Model_DbTable_Search'));
$this-&g
在下面的代码中,我期望$request->getContents()获得HTTP请求的主体内容。当发送非多部分请求时,这会像预期的那样工作,尽管在使用multipart请求时,$body变量仍然是空的。
public function postDebugAction(Request $request) {
$body = $request->getContent();
if (empty($body)) {
throw new \Exception('Body empty.');
}
return $this-&
我想断言传入PHPUnit测试方法的值/对象是由getMockBuilder初始化的模拟。例如:
class Example_Test extends PHPUnit_Framework_TestCase
{
...
public function testMethod(Some_Class $object_mock)
{
// since methods like "expects" will be used below,
// this needs to be a mock
assert('
我有一个类要测试。代码如下:
class MyClass
{
function functionToTest() {
$class = new Example();
}
在PHPUnit中,我可以使用mocks/stub来代替Example类吗?
在我的测试方法中:
class MyClassTest extends PHPUnit_Framework_TestCase {
function testFunctionTest() {
$testClass = new MyClass();
$result = $testCla
我正在使用模拟PHPUnit为我的代码创建一个模拟测试。但是,当我创建一个模拟方法(A)(由类中的另一个方法(B)调用)时,方法B不返回我想要的-它总是返回null。
我的班级:
public function isRecommended()
{
return $this->getAverageScore() >= 3;
}
public function getAverageScore()
{
// do something
}
我的测试:
public function testIsRecommended_With5_ReturnsTrue()
{
$
我试图在单元测试中模拟mysqli对象,因此我必须模拟属性mysqli_result::__get()或直接模拟属性mysqli_result::num_rows。我已经在寻找解决方案,但我发现的答案根本行不通。
我的代码是这样的:
use PHPUnit\Framework\TestCase;
class Mocks extends TestCase{
public function makeMysqliMock(array $queries): mysqli{
// build mocked mysqli-object
#$link = $this
我正在为一个类方法编写一个单元测试,它使用模拟调用另一个类的方法,只有需要调用的方法被声明为final,因此PHPUnit无法模拟它。有什么不同的方法吗?
示例:
类将被嘲弄
class Class_To_Mock
{
final public function needsToBeCalled($options)
{
...
}
}
我的测试用例
class MyTest extends PHPUnit_Framework_TestCase
{
public function testDoSomething()
{
$mo
我有一个symfony2应用程序,我使用的是phpunit。
我有一些单元测试,其中我使用模拟来模拟向应用程序发出“真实”请求的AppKernel和功能测试。当单独运行单元测试或功能测试时,一切工作正常。
当我想一次运行所有测试时,它会变得很糟糕。单元测试一结束,phpunit就会停止,告诉我:
Fatal error: Cannot redeclare class AppKernel in C:\Users\sebastian\workspace\ppInterface\app\AppKernel.php on line 35
我不明白这一点,因为我以为phpunit会在它自己的环境中运行每
我有一个我想模拟的界面。我知道我可以模拟该接口的实现,但是有没有一种方法可以直接模拟接口呢?
<?php
require __DIR__ . '/../vendor/autoload.php';
use My\Http\IClient as IHttpClient; // The interface
use My\SomethingElse\Client as SomethingElseClient;
class SomethingElseClientTest extends PHPUnit_Framework_TestCase {
public functi
我正在尝试使用PHPUnit测试一个web服务接口类。基本上,这个类调用一个SoapClient对象。我试图使用这里描述的PHPUnit方法在getMockFromWsdl中测试这个类:
但是,由于我想测试来自同一个类的多个方法,所以每次设置对象时,我还必须设置模拟的WSDL SoapClient对象。这将导致引发致命错误:
Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
如何在多个测
我遇到了一个PHPUnit无法模拟我的简单类的问题:
class.php
<?php
class SUT {
function doThing() {
$db = new DB();
return $db->query();
}
}
class DB {
function query() {
return "failed";
}
}
?>
test.php
<?php
use PHPUnit\Framework\TestCase;
require 'API/
是否可以使用PHPUnit将类常量添加到模拟中?
下面是一个示例:
class SomeTest extends PHPUnit_Framework_TestCase {
public function setUp() {
$mock = $this->getMock( 'SomeClass' );
// Here I'd like to add a constant to $mock; something like
// $mock::FOOBAR;
}
}
你们中有谁知道怎样才能让这个行为起作用?
我遇到了PHPUnit的麻烦。我有一个包含php文件的类,该文件包含非类方法。在我的类中,我有一个调用那个函数的方法。下面是我的设置示例。
class foo
{
public function getInfo()
{
....
$this->GetFunctions();
$data = functionFromRequire();
....
}
public function getFunctions()
{
return require_once '/
我正在测试一个控制器,它拥有一个对象,每次我做一次测试,它的构造函数都会抛出异常,因为构造函数会检查一些环境变量不是空的(但它们在测试期间是空的)。我试着用getMockBuilder()->disableOriginalConstructor(),createMock模拟这个类,Mockery::mock()->makePartial(),在调用parent::setUp之前和之后,我试着在setUp()中做,我试着在单元测试中做所有的事情,而不是setUp(),他们都执行构造函数,我不知道为什么! 下面是一个测试示例: public function setUp(): voi
代码将解释一切:
<?php
class ATest extends PHPUnit_Framework_TestCase
{
public function testDestructorOnOriginalClass() {
$a = new A(); // It
unset($a); // works
echo " great!";