Symfony ApiPlatform ApiTestCase无法正常工作

时间:2019-11-24 21:35:04

标签: symfony testcase api-platform.com

我想在ApiPlatform中进行一些功能测试。当我使用邮递员插入用户时,我没有问题。但是,当我使用测试用例时,会显示以下错误消息:

  

未捕获的PHP异常Doctrine \ ORM \ ORMInvalidArgumentException:“未通过关联'App \ Entity \ User#profile'找到一个新实体,该关系未配置为级联实体的持久操作:App \ Entity \ Profile @ 000000004079006a00000000554e4576。解决此问题:在此未知实体上显式调用EntityManager#persist()或配置级联可将该关联保留在映射中,例如@ManyToOne(..,cascade = {“ persist”})。问题实现“ App \ Entity \ Profile #__ toString()”以获取线索。”

这是我的测试代码:

    <?php

    namespace App\Tests;

    use ApiPlatform\Core\Bridge\Symfony\Bundle\Test\ApiTestCase;
    use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
    use App\Entity\User;

    class UsersTest extends ApiTestCase
    {
      public function testCreateBook(): void
      {
          $response = static::createClient()->request('POST', '/api/users', ['json' => [
              'email' => '0099740915',
              'username' => 'The Handmaid\'s Tale',
              'password' => 'test',
              'profile' => [
                'firstName' => 'Test FirstName'
              ]
          ]]);

          $this->assertResponseStatusCodeSame(201);
      }

    }

我的phpunit配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="bin/.phpunit/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="config/bootstrap.php"
>
    <php>
        <ini name="error_reporting" value="-1" />
        <server name="APP_ENV" value="test" force="true" />
        <server name="SHELL_VERBOSITY" value="-1" />
        <server name="SYMFONY_PHPUNIT_REMOVE" value="" />
        <server name="SYMFONY_PHPUNIT_VERSION" value="7.5" />
    </php>

    <testsuites>
        <testsuite name="Project Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist>
            <directory>src</directory>
        </whitelist>
    </filter>

    <listeners>
        <listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
    </listeners>
</phpunit>

我从ApiPlatform获得了以下文档:https://api-platform.com/docs/distribution/testing/

我不知道,为什么使用TestCase不能正常工作。有人有主意吗? 在Postman上,所有人都在正常工作

感谢您的帮助

0 个答案:

没有答案