在 PHPUnit 中分离种子

发布于 2024-08-30 20:22:11 字数 588 浏览 2 评论 0原文

如何为一个测试类中的某些测试创建单独的种子? PHPUnit 文档包含这个示例

<?php
require_once 'PHPUnit/Extensions/Database/TestCase.php';

class DatabaseTest extends PHPUnit_Extensions_Database_TestCase
{
    protected function getConnection()
    {
        $pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', '');
        return $this->createDefaultDBConnection($pdo, 'testdb');
    }

    protected function getDataSet()
    {
        return $this->createFlatXMLDataSet(dirname(__FILE__).'/_files/bank-account-seed.xml');
    }
}
?>

,但在这个示例中,我为类中的所有测试提供了一个种子。

How do I create a separate seed for some test inside one test class?
PHPUnit documentation includes this example

<?php
require_once 'PHPUnit/Extensions/Database/TestCase.php';

class DatabaseTest extends PHPUnit_Extensions_Database_TestCase
{
    protected function getConnection()
    {
        $pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', '');
        return $this->createDefaultDBConnection($pdo, 'testdb');
    }

    protected function getDataSet()
    {
        return $this->createFlatXMLDataSet(dirname(__FILE__).'/_files/bank-account-seed.xml');
    }
}
?>

But in this example I have one seed for all the tests inside my class.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抠脚大汉 2024-09-06 20:22:11

我已经找到答案了。
一种可能的方法是使用 setDataSet 方法。

示例:

$newSet =   $this->createFlatXmlDataSet(dirname( __FILE__ ) . '/_files/members.xml');        
$this->getDatabaseTester()->setDataSet($newSet);
$this->getDatabaseTester()->onSetUp();

如果您将其放入测试函数中,它会将默认种子重置为您需要的任何其他种子。

I've found the answer.
One possible way to do it is to use setDataSet method.

Example:

$newSet =   $this->createFlatXmlDataSet(dirname( __FILE__ ) . '/_files/members.xml');        
$this->getDatabaseTester()->setDataSet($newSet);
$this->getDatabaseTester()->onSetUp();

If you put it in your test function, it will reset default seed to any other, that you need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文