我在尝试使用 SimpleTest for PHP 运行一些简单测试时遇到错误.
目前,我正在根据文档扩展 UnitTestCase 类。我正在尝试在一种方法中测试我类(class)的不同方面。这是我的类(class):
<?php
class SimpleClass extends UnitTestCase {
public function __construct() {
$this->test();
}
private function test() {
$x = true;
$this->assertTrue($x, 'x is true');
}
}
我已经尝试扩展 TestSuite 类并使用文档中的语法,但我遇到了同样的错误:
Fatal error: Call to a member function getDumper() on a non-object in /simpletest/test_case.php on line 316
关于如何执行此操作的任何想法,或者我是否错误地进行了类测试?
最佳答案
不要在测试中使用构造函数!
SimpleTest 允许您创建带有方法的类。如果他们的名字以“test”开头,它会被自动识别为一个测试方法,如果您启动测试套件,它将被调用。
您创建了一个调用您的测试方法的构造函数,并在没有进行所有设置的情况下执行断言,因此 SimpleTest 没有需要将其测试结果包装到一个好的输出中的报告器类。
仔细阅读教程,您会发现一些关于如何设置测试套件或如何开始单个测试的提示:
Let us suppose we are testing a simple file logging class called Log in classes/log.php. We start by creating a test script which we will call tests/log_test.php and populate it as follows...
改编自文档的代码示例:
<?php
require_once('simpletest/autorun.php');
require_once('../classes/log.php');
class TestOfLogging extends UnitTestCase {
function testLogCreatesNewFileOnFirstMessage() {
$this->assertTrue(true);
}
}
?>
请注意没有构造函数,如果使用 PHP 执行此文件,自动运行文件将负责运行测试。
关于php - 使用 PHP SimpleTest 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502735/