如何在原始PHP中定义和编写自定义单元测试?

时间:2019-06-19 08:31:35

标签: php testing frameworks

我正在使用一些特殊的PHP框架。由于某些原因(例如PHPunit或代码接收),我无法使用任何单元测试框架。所以我需要编写我的自定义代码来实现。有没有什么例子可以完成这项工作?

我可以使用此方法代替框架吗?

    public function testFailure()
    {
       $a = 1; $b = 0;
       if($a !=== b){
          //throw exception here
       }
    }

相反-

    public function testFailure()
    {
        $this->assertEquals(1, 0); //return false
    }

1 个答案:

答案 0 :(得分:1)

绝对最简单的方法几乎就是您上面编写的内容(尽管代码不是真的有效)。在断言上引发异常,您将拥有有效的单元测试方法!

现在,我想您可能可以使用phpunit weather之类的东西,也可以不使用某些自定义代码,但是我只会在让您知道的情况下继续这样做。

也:

!===无效,!==会更正确!


此外,我建议您为assertions创建某种类型的静态或全局方法,而不是上面的方法,这样您就可以轻松地重用抛出异常的代码,而不必在上面编写相同的代码以上:

// assert.php
class Assert {
  public static function isEqual($a, $b) {
    if ($a != $b) {
      throw new MyAssertionException('Not equal!');
    }
    return true;
  }

  public static function isSame($a, $b) {
    if ($a !== $b) {
      throw new MyAssertionException('Not same!');
    }
    return true;
  }

}

---

// test.php
include_once 'assert.php';

Assert::isEqual(1, 2);