php - 使用 PHP SimpleTest 进行测试

标签 php unit-testing simpletest

我在尝试使用 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/

相关文章:

php - 如何在 Woocommerce 中从 "Choose an option"更改按钮文本?

c# - 如何在 Moq Func<object, Class> Property { get; 中进行模拟}

python - 如何修复单元测试中的错误? |断言错误

php - 为什么我应该使用 PHP 测试框架?

php - 读取查询的多个结果并将其显示到 php 生成的表中

php - 安装 Zend Server CE 后与 MAMP 上的 MySQL 失去连接

python - 不明白这个 "object not callable"错误

php - 如何使用过程代码库在 PHP 中编写单元测试?

PHP 重载单元测试私有(private)属性和方法

javascript - 如何在JS中保存PDF文件(来自ajax)