【发布时间】:2015-07-14 17:18:49
【问题描述】:
我有很多测试需要创建一个特定的模拟对象。所以,这就是我所做的:
namespace AppBundle\Tests\Services\Terminal;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use AppBundle\Entity\Tunnel;
class TunnelBasedTestCase extends MockeryTestCase
{
/**
*
* @var Tunnel
*/
protected $tunnel;
protected function setup()
{
$tunnel = new Tunnel();
$tunnel->setName('B9')
->setIp('192.168.2.52')
->setUsername('username')
->setPassword('password')
->setSign('sign')
->setStatus('open');
$this->tunnel = $tunnel;
}
}
但是,问题是现在 PHPUnit 尝试运行这个测试,这只是为了防止我复制粘贴 setup() 函数。我不想跳过它,因为我想得到一个完全绿色的测试结果,而不是得到类似的东西:
....S.....
或者这个:
....I.....
这是我的 PHPUnit 配置,但也无法做到这一点:
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
<directory>../src/*Bundle/Tests</directory>
<exclude>../src/AppBundle/Tests/Services/Terminal/TunnelBasedTestCase.php</exclude>
</testsuite>
</testsuites>
我该怎么做?
【问题讨论】:
-
这个类不是
testcase类,所以你可以用一个不匹配正则表达式的名字来重命名它来检查它是否是一个testclass。因此,您可以将其重命名为BaseTunnel。希望对您有所帮助 -
我想到了这一点,但问题是我将不得不为此失去可读性。我首先要确定实际上没有办法,而不是我不知道。