没有框架的PHP单元测试......可能吗?可取?

Ste*_*hen 12 php homebrew frameworks unit-testing

当人们开始搜索PHP单元测试时,通常会偶然发现:

  1. PHPUnit的.
  2. SimpleTest的.
  3. 大量的博客解释了如何使用PHPUnit和SimpleTest.
  4. StackOverflow关于PHPUnit和SimpleTest的问题......

......我想你明白了.

我想知道:如何用普通的'PHP'进行单元测试?这甚至是一个明智的努力?

我想我必须建立自己的小框架.我很感兴趣,因为我希望更好地了解我的单元测试中发生了什么.我也很感兴趣,因为我认为轻量级的定制解决方案可以更快地运行我的测试.

奖金问题:谁是失败者?是否有值得研究的第三个框架(用于乙炔目的)?

net*_*der 9

单元测试基本上是一组断言.

考虑以下PHPUnit测试用例:

class MyTest extends PHPUnit_Framework_TestCase {
   public function testFoo() {
       $obj = new My;
       $this->assertEquals('bar', $obj->foo());
   }
}
Run Code Online (Sandbox Code Playgroud)

您可以在不使用PHPUnit的情况下使用类似的测试用例:

class MyTest {
   public function testFoo() {
       $obj = new My;
       assert("$obj->foo() == 'bar'");
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,通过不使用框架,您必须手动创建测试用例(MyTest)的实例并手动调用每个测试方法(MyTest :: testFoo等).

框架(例如:PHPUnit)只不过是一组"助手",使其更容易,更快:通过自动生成骨架; 内置模拟对象,命令行脚本等

您仍然可以在没有框架的情况下进行单元测试,但最终,您可能会节省更多时间使用一个,因为毕竟,这通常是框架的用途.