首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Symfony 2中的功能测试加载夹具:调用未定义的方法MyControllerTest::loadFixtures()

为Symfony 2中的功能测试加载夹具:调用未定义的方法MyControllerTest::loadFixtures()
EN

Stack Overflow用户
提问于 2015-05-15 14:29:46
回答 1查看 953关注 0票数 1

我试图找到一种简单的方法,在Symfony 2.6中加载我的夹具来运行功能测试。这是一个很常见的问题,有人问过几次,但我迄今发现的答案并不完全符合我的期望:

  • Some依赖于从函数测试内部运行命令行。
  • Other手动运行每个定义的夹具,然后负责创建和删除数据库。

在这两种情况下(使用语句和手动代码)都存在大量开销,我认为这是非常标准的任务。

另一方面,这些帖子推荐使用LiipFunctionalTestBundle。下面是我在安装说明中所读到的:

从捆绑测试\WebTestCase类编写夹具类并调用loadFixtures()方法。请注意,在加载夹具之前,loadFixtures()将删除数据库中的内容。“

所以我试过..。

代码语言:javascript
复制
namespace AppBundle\Test\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class MyControllerTest extends WebTestCase
{
    public function setUp()
    {
        $classes = array(
                'AppBundle\DataFixtures\LoadUserData',
        );
        $this->loadFixtures($classes);
    }
    ...
}

运气不好:

在第15行的AppBundle\Tests\Controller\MyControllerTest::loadFixtures()中调用未定义的方法/gitrepos/myproject/src/AppBundle/Tests/Controller/MyControllerTest.php

静态调用会产生同样的错误..。

代码语言:javascript
复制
self:loadFixtures($classes);

我真的觉得我错过了一些很明显的东西。有人能让我重回正轨吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-16 13:15:20

我看得出来你在用

代码语言:javascript
复制
Oro\Bundle\TestFrameworkBundle\Test\WebTestCase

作为基类,而我认为您应该使用

代码语言:javascript
复制
Liip\FunctionalTestBundle\Test\WebTestCase

才能调用此方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30262077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档