【发布时间】:2019-09-03 16:24:54
【问题描述】:
我很难开始测试与外部 API (Vimeo API) 的集成,例如(删除视频 - 上传视频 - 等等)。
- 我应该在测试时访问真正的 Vimeo 的服务器吗?
这样做是不是一个坏主意:
use Tests\TestCase;
use Vimeo\Laravel\VimeoManager;
class VimeoApiTest extends TestCase
{
protected function setUp() : void
{
parent::setUp();
$this->vimeo = new VimeoManager();
}
/** @test */
public function a_video_can_be_deleted()
{
$video = $this->vimeo->upload($fakeVideo);
// make http request to delete the video
$result = $this->vimeo->delete($video['id']);
$this->assertEquals('success', $result['status']);
}
}
【问题讨论】:
-
你不测试,你嘲笑他们
-
你可以通过themockapis.in模拟他们
-
大多数其他答案/cmets 说您应该模拟响应。虽然这是真的,但拥有一个真正命中第 3 方服务器的真正端到端测试并没有什么坏处。这在使用 CI/CD 管道时很有帮助,其中 E2E 测试将通知停机时间和可能不正确的响应负载。
标签: laravel testing phpunit vimeo vimeo-api