PHPUnit测试函数在类之外

The*_*mlt 8 php phpunit unit-testing

我是PHPUnit和单元测试的新手,所以我有一个任务:我可以在类之外测试一个函数:

    function odd_or_even( $num ) {
    return $num%2; // Returns 0 for odd and 1 for even
}

class test extends PHPUnit_Framework_TestCase {
    public function odd_or_even_to_true() {
        $this->assetTrue( odd_or_even( 4 ) == true );
    }
}
Run Code Online (Sandbox Code Playgroud)

现在它只是返回:

No tests found in class "test".
Run Code Online (Sandbox Code Playgroud)

Dou*_*ngs 13

您需要在函数名称前加上'test',以便将它们识别为测试.

从文档:

  1. 测试是名为test*的公共方法.

或者,您可以在方法的docblock中使用@test注释将其标记为测试方法.

呼叫应该没问题odd_or_even().

例如:

class test extends PHPUnit_Framework_TestCase {
    public function test_odd_or_even_to_true() {
        $this->assertTrue( odd_or_even( 4 ) == true );
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Theadamlt:同样在`odd_or_even(4)== true`中,`== true`部分是多余的,只要你使用`assertTrue` (5认同)
  • +1 用于提及使用 @test 注释。优秀。 (2认同)