我想知道是否有任何有这方面经验的人可以对这两者之间的显着差异有所了解吗?
每种特定的强度使其适合任何特定情况?
我基本上相信单元测试的好处,我想开始将这个概念应用于用PHP编写的大型现有代码库.不到10%的代码是面向对象的.
我看了几个单元测试框架(PHPUnit,SimpleTest和phpt).但是,我没有找到测试过程代码的任何示例.什么是我的情况最好的框架,有没有使用非OOP代码单元测试PHP的例子?
我正在尝试将一堆测试从SimpleTest迁移到PHPUnit,我想知道是否有一个等效的SimpleTest的部分模拟.
更新:我似乎无法在文档中找到任何暗示此功能可用的内容,但我想到我可以使用子类.这是一个好主意还是坏主意?
class StuffDoer {
protected function doesLongRunningThing() {
sleep(10);
return "stuff";
}
public function doStuff() {
return $this->doesLongRunningThing();
}
}
class StuffDoerTest {
protected function doesLongRunningThing() {
return "test stuff";
}
}
class StuffDoerTestCase extends PHPUnit_Framework_TestCase {
public function testStuffDoer() {
$sd = new StuffDoerTest();
$result = $sd->doStuff();
$this->assertEquals($result, "test stuff");
}
}
Run Code Online (Sandbox Code Playgroud) 我想使用simpleTest编写测试,如果我正在测试的方法导致PHP E_NOTICE"未定义的索引:foo" ,则会失败.
我试图expectError()与expectException()没有成功.simpleTest网页表明simpleTest无法捕获编译时PHP错误,但E_NOTICE似乎是运行时错误.
有没有办法捕获这样的错误,如果是这样我的测试失败?
我正在使用simpleTest来编写我的PHP测试.我正在写一个文件上传插件,并想知道我是如何测试它的.
我想检查文件是否正确上传,在正确的文件夹中,在需要时正确返回错误等.
如何模拟文件上传(通过$ _FILES变量)?我应该注意哪些问题?
我是一个大风扇SimpleTest的,因为这是我所知道的.它对模拟和Web测试提供了出色的支持.
但我总是害怕停滞不前,所以任何引人注目的转变论点都会受到赞赏.
有没有任何简单的PHP测试框架,可能比simpletest更简单,而不是像PHPUnit那样基于命令行?
我用SimpleTest对一些PHP代码进行单元测试,但我遇到了麻烦.在我对数据库类的测试中,我希望能够为PHP mysql函数设置期望.在我的mail函数包装类的测试中,我想模拟PHPs mail函数.这只是一些例子.
关键是:我不(总是)想测试我的Mail类是否发送电子邮件,我想测试它如何调用该mail函数.我希望能够控制这些函数返回的内容.我希望能够测试我的数据库类,而不需要数据库,灯具和那么多.
我有一些测试Ruby代码的经验,而Test :: Unit和RSpec使得单独测试代码变得非常容易.我是测试PHP的新手,感觉我测试的内容比我需要的要多得多,以便让我的测试通过.
在SimpleTest或PhpUnit或其他一些测试框架中是否有办法使这成为可能或更容易?
FWIW我正在使用SimpleTest 1.1alpha.
我有一个单例类,我想编写一个单元测试,通过尝试实例化类(它有一个私有构造函数)来保证该类是一个单例.
这显然会导致致命错误:
致命错误:调用私有FrontController :: __ construct()
有没有办法"捕获"致命错误并报告通过的测试?
可能重复:
简单测试与PHPunit
我是软件开发方面的新手.我需要知道我应该使用女巫测试单元框架.我看到有些人使用PHPUnit而其他人使用SimpleTest.我应该为初学者选择什么样的套餐?
最好的祝福,
php ×10
simpletest ×10
unit-testing ×8
phpunit ×6
exception ×1
fatal-error ×1
file-upload ×1
mocking ×1
paradigms ×1
singleton ×1
upload ×1