我有一个简单的PostControllerTest
类:
<?php
namespace AppBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Bundle\FrameworkBundle\Client;
class PostControllerTest extends WebTestCase
{
/**
* @var Client
*/
private $client;
public function setUp() {
$this->client = static::createClient();
}
public function idProvider()
{
return [
["1"],
["2"],
["3"],
];
}
/**
* @dataProvider idProvider
*/
public function testGet($id)
{
$this->client->request('GET', '/post/'.$id);
$this->assertTrue($this->client->getResponse()->isSuccessful());
}
}
testGet
方法使用 idProvider
发起请求,例如 /post/{id}
并断言成功的响应,其中 {id}
是数据库中 Post
实体的真实 id
。一切都很好,但是如果要删除
id = 1
的 Post
怎么办?我需要从数据库中获取一些
id
,例如最后或/和随机的3个,并将其作为 dataProvider
(或不是 dataProvider
?)传递给 testGet
。我使用
Symfony
2.8.3 和 PHPUnit
5.2.11。如何解决?任何建议都将不胜感激。谢谢!