美文网首页
PHPUnit 当两个测试方法 @depends 同一个测试方法

PHPUnit 当两个测试方法 @depends 同一个测试方法

作者: forks1990 | 来源:发表于2021-12-07 15:30 被阅读0次

先看一个例子:testPushtestPop 都依赖 testEmpty

<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;

final class StackTest extends TestCase
{
    public function testEmpty(): array
    {
        $stack = [];
        $this->assertEmpty($stack);

        return $stack;
    }

    /**
     * @depends testEmpty
     */
    public function testPush(array $stack): array
    {
        array_push($stack, 'foo');
        $this->assertSame('foo', $stack[count($stack)-1]);
        $this->assertNotEmpty($stack);

        return $stack;
    }

    /**
     * @depends testEmpty
     */
    public function testPop(array $stack): void
    {
        $this->assertSame('foo', array_pop($stack));
        $this->assertEmpty($stack);
    }
}

那么,testEmpty 会执行几次呢?答案是1次。这意味着对象的状态在三个测试中共享,如果在 testPushtestPop 中保持只读访问,是okay的。否则有三种选择:

  1. @depends clone
  2. @depends shallowClone
  3. 不用@depends

如果 clone 能解决问题的话,就再好不过了。否则就放弃吧,提前一个公用的方法出来,不要用 @depends 了。

相关文章

  • PHPUnit 当两个测试方法 @depends 同一个测试方法

    先看一个例子:testPush 和 testPop 都依赖 testEmpty。 那么,testEmpty 会执行...

  • CakePHP的测试方法

    CakePHP的测试方法 CakePHP 测试的文档 注意 PHPUnit 4 与 CakePHP 的单元测试不兼...

  • PHPUnit 使用随机执行顺序发现更多问题

    修改 phpunit.xml 配置文件: phpunit 不再按照测试方法的定义顺序执行,可以避免测试程序和执行顺...

  • php测试

    进行 PHP 测试的最佳方法之一是使用一个专业的测试框架,例如 PHPUnit。下面是使用 PHPUnit 进行 ...

  • php测试

    概念 单元测试:单元测试能单独证实应用中的各个类,方法和函数能正常运行(工具:PHPUnit) 测试驱动开发(TD...

  • 十二、测试方法

    测试方法 功能测试 • 测试目标 - 确保所有的被测对象功能正常 • 测试方法 - 至少为每条测试需求设计两个测试...

  • TestNg-07-参数化测试

    参数化测试就是,当测试的时候给测试方法传递参数

  • Laravel 测试: PHPUnit 入门教程

    介绍 PHPUnit 测试的基础知识,使用基本的 PHPUnit 断言和 Laravel 测试助手。 介绍 PHP...

  • Golang测试

    如何编写好的单元测试 单元测试主要有两个方面: 编写测试方法 编写可测试代码 编写单元测试方法 单元测试特定案例的...

  • iOS 单元测试--异步测试

    单元测试分为3种: 逻辑测试:测试逻辑方法 异步测试:测试耗时方法(用来测试包含多线程的方法) 性能测试:测试某一...

网友评论

      本文标题:PHPUnit 当两个测试方法 @depends 同一个测试方法

      本文链接:https://www.haomeiwen.com/subject/wrqaxrtx.html