我正在使用 SonataAdminBundle 和 DoctrineORMBundle ,假设我有一个帖子/标签关系,其中标签与帖子是多对多的。
我正在尝试在 Post 表单上运行功能测试。标签显示在 Post 表单中抛出一个小部件,其中 Tag 表单字段来自另一个请求(Ajax 调用)并通过 Javascript 合并到 Post 表单中。
依靠 Javascript 很容易做到这一点,但是当涉及到功能测试场景时,使用 WebTestCase 类,我发现很难模拟这样的功能。
假设我正在测试 Post 的 Create 操作并在我的测试用例中使用此代码。
public function testCreate() {
$client = static::createClient();
$client2 = static::createClient();
//main request. The Post form
$crawler = $client->request('GET','/route/to/posts/create');
//second request (The Tag form) simulating the request made via Ajax
$crawler2 = $client2->request('GET','/admin/core/append-form-field-element?code=my.bundle.admin.tags);
}
上面代码的问题在于,从那时起我不知道如何将 Tag 表单合并到 Post 表单中,所以这样它们会一起提交。有任何想法吗?