首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试环境下的Symfony 4 API测试

测试环境下的Symfony 4 API测试
EN

Stack Overflow用户
提问于 2019-05-20 11:51:23
回答 1查看 678关注 0票数 0

我正在为api $client->request('POST', 'http://symfony.localhost/purchase', ['headers' => $headers]);编写一个测试。我使用测试sqlite设置测试环境,但是请求中调用的API继续在dev db上写入。我认为http请求不允许识别环境。(P.S. test env工作正常,与其他单元测试一起尝试)。我如何告诉/purchase使用test env?

这是我的考验:

代码语言:javascript
复制
public function testAdd()
{
    $client = new \GuzzleHttp\Client();
    $token = $this->encrypt('testaauser@mail.com', 'carouge', 'basic');
    $headers = [
        'Authorization' => 'Bearer ' . $token,
        'Accept'        => 'application/json',
    ];

    $res = $client->request('POST', 'http://symfony.localhost/purchase', ['headers' => $headers]);
    $this->assertEquals(201, $res->getStatusCode());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 08:26:19

正如您已经说过的,您的http://symfony.localhost指向您的DEV环境,所以当您执行API调用时,您实际上是在该环境上执行调用。

要做您想做的事情,您需要“构建”一个测试环境:

  1. 在您的new服务器中创建一个新的虚拟主机,使用一个新的URL指向您的dev环境的相同安装,但是使用一个新的URL (例如:http://symfony.test)。
  2. 如文档中所述,为新的虚拟主机配置环境变量。。具体来说,您希望将APP_ENV设置为测试。例如,在Apache中,可以在虚拟主机配置中编写: SetEnv APP_ENV试验
  3. 对在该VirtualHost上定义的URL进行API调用。

这样,您的API调用就会在您的测试环境中执行。

关于环境的更多信息:

https://symfony.com/doc/4.1/configuration/environments.html

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

https://stackoverflow.com/questions/56220481

复制
相关文章

相似问题

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