PHPUnit TDD,PHP致命错误:调用未定义的方法
我正在启动一个使用PHPUnit的TDD项目,有些东西真的让我很烦 似乎只要所有的类和方法都没有实现,所有的测试就不能运行。 如果类或方法尚未实现,如何使测试继续事件 谢谢 编辑: TDD的意义不在于您的测试套件在编写测试时失败吗? 是的,当然,但我想对这个项目有一个全球视野。 假设我们已经编写了1000个测试,第一个运行的测试出现了致命错误。 但我们并不幸运,当我们开始实现代码时,这部分将是最后要实现的部分之一。我不想开发盲测试,只有在清除所有致命错误后才能运行我的测试套件 因此,是的,测试失败与整个测试过程因致命错误而停止/死亡之间存在巨大差异,在这种状态下这是正常的PHPUnit TDD,PHP致命错误:调用未定义的方法,php,tdd,phpunit,undefined,Php,Tdd,Phpunit,Undefined,我正在启动一个使用PHPUnit的TDD项目,有些东西真的让我很烦 似乎只要所有的类和方法都没有实现,所有的测试就不能运行。 如果类或方法尚未实现,如何使测试继续事件 谢谢 编辑: TDD的意义不在于您的测试套件在编写测试时失败吗? 是的,当然,但我想对这个项目有一个全球视野。 假设我们已经编写了1000个测试,第一个运行的测试出现了致命错误。 但我们并不幸运,当我们开始实现代码时,这部分将是最后要实现的部分之一。我不想开发盲测试,只有在清除所有致命错误后才能运行我的测试套件 因此,是的,测试失
作为一项工作,我们在开始编写测试之前创建了我们的类框架。TDD的要点不就是您的测试套件在编写测试时失败了吗 我想你的观点是,它死在一个致命的错误,而不是仅仅显示红色的我失败了酒吧。非常有趣的一点是,我正在用phpunit做TDD,但这从来没有让我感到困扰 首先想到的是进程隔离 例子: 让我们假设一个测试类如下所示:
<?php
class fooTest extends PHPUnit_Framework_TestCase {
public function testA() {
$x = new a();
}
public function testB() {
$this->assertTrue(true);
}
}
PHPUnit 3.5.12 by Sebastian Bergmann.
E.
Time: 1 second, Memory: 3.25Mb
There was 1 error:
1) fooTest::testA
RuntimeException: Fatal error: Class 'a' not found in /home/foo/mep.php on line 6
Call Stack:
0.0005 102364 1. {main}() /home/foo/-:0
0.0341 1768644 2. __phpunit_run_isolated_test() /home/foo/-:143
[...........]
FAILURES!
Tests: 2, Assertions: 1, Errors: 1.
但是当使用phpunit-process isolation test.php开关时,它看起来是这样的:
<?php
class fooTest extends PHPUnit_Framework_TestCase {
public function testA() {
$x = new a();
}
public function testB() {
$this->assertTrue(true);
}
}
PHPUnit 3.5.12 by Sebastian Bergmann.
E.
Time: 1 second, Memory: 3.25Mb
There was 1 error:
1) fooTest::testA
RuntimeException: Fatal error: Class 'a' not found in /home/foo/mep.php on line 6
Call Stack:
0.0005 102364 1. {main}() /home/foo/-:0
0.0341 1768644 2. __phpunit_run_isolated_test() /home/foo/-:143
[...........]
FAILURES!
Tests: 2, Assertions: 1, Errors: 1.
现在执行第二个测试并通过谢谢,这就可以了!