我与Linkedin API集成,我有这样的代码。我想测试它并在CI/CD中运行它。要获得访问令牌,我应该打开浏览器,并允许我的应用程序访问我的测试linkedin帐户。我也不能把直接访问令牌的代码,因为它可以过期。刷新令牌已过期很长时间,但仍然可以过期。像这样测试第三方API的最佳方法是什么?
await sendPostToLinkedIn({ access_token: 'xxx', content: 'I got promoted today!' });
pod7payv1#
通常只为自己的代码编写CI / CD集成测试,而不是第三方代码。对于您自己的API,可以使用一种技术来发布您自己的mock JWT访问令牌,然后公开一个mock JWKS URI以获取令牌签名密钥,就像我的这些示例集成测试一样。这避免了处理OAuth登录的需要。对于必须运行授权代码流的第三方API,一个选择是手动执行该步骤,偶尔执行,然后使用访问令牌运行测试套件。毕竟,当您自己的客户端代码更改时,第三方API不会更改。也许在CI / CD期间,您可以模拟真实的的API,并运行相同的测试,重点是测试您自己的客户端代码。您可以编写自己的客户端代码来运行代码流,方法是遵循重定向和发出表单发布。但是这样的代码很复杂,而且有点脆弱,所以我只会有节制地使用它。
1条答案
按热度按时间pod7payv1#
通常只为自己的代码编写CI / CD集成测试,而不是第三方代码。对于您自己的API,可以使用一种技术来发布您自己的mock JWT访问令牌,然后公开一个mock JWKS URI以获取令牌签名密钥,就像我的这些示例集成测试一样。这避免了处理OAuth登录的需要。
对于必须运行授权代码流的第三方API,一个选择是手动执行该步骤,偶尔执行,然后使用访问令牌运行测试套件。毕竟,当您自己的客户端代码更改时,第三方API不会更改。也许在CI / CD期间,您可以模拟真实的的API,并运行相同的测试,重点是测试您自己的客户端代码。
您可以编写自己的客户端代码来运行代码流,方法是遵循重定向和发出表单发布。但是这样的代码很复杂,而且有点脆弱,所以我只会有节制地使用它。