gpt4 book ai didi

phpunit - 如何在 phpUnit 中的所有测试中传播setUp和tearDown?

转载 作者:行者123 更新时间:2023-12-02 04:55:17 26 4
gpt4 key购买 nike

我有以下测试/文件夹:

tests/    ClassOne.test.php    ClassTwo.test.php    ClassThree.test.php

我必须将以下 setUp()tearDown() 方法复制到每个文件中:

    public function setUp()    {        $this->dbTestData();    }    public function tearDown()    {        $this->dbClear();    }    private function dbTestData() {        // populate the database with a few entries        Entities\AutocompleteValue::create(array('field_name' => 'testing1', 'entry_value' => 'Aisforapple'));        Entities\AutocompleteValue::create(array('field_name' => 'testing2', 'entry_value' => 'Bisforball'));        Entities\AutocompleteValue::create(array('field_name' => 'testing3', 'entry_value' => 'Cisforcat'));        Entities\AutocompleteValue::create(array('field_name' => 'testing4', 'entry_value' => 'Disfordog'));    }    private function dbClear() {        DB::table('autocomplete_values')->delete();    }

我考虑过编写一个单独的类,其中包含这些方法,每个测试文件中的 require() 文件,并从 那个 类扩展而不是 PHPUnit_Framework_Testcase。有没有更简单的解决方案?

我无法轻松访问 phpunit.xml,因为我的编码框架的 CLI 工具(Laravel、artisan)处理其创建。因此,如果有一个不涉及该文件的解决方案会更好。

最佳答案

屈服并创建基类。这是这种情况下的标准解决方案。它带来了其他优点,例如保存您创建的静态断言扩展的好地方。

我正在努力想出一种替代方法,更不用说更简单的方法了。我所能建议的就是使用一个脚本来扫描每个测试文件并插入 setUptearDown 及其依赖项(如果找不到)。但是(恕我直言)这是一个更复杂的解决方案,没有显着的好处。

关于phpunit - 如何在 phpUnit 中的所有测试中传播setUp和tearDown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14786649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com