Tho*_*ggi 3 javascript unit-testing node.js shopify
我正在创建一个shopify应用程序.我已经编写了明确的中间件,它将通过查询参数获取商店,因此带有"/?shop = example-shop"的路线将启动登录流程,从那里用户被重定向到shopify,如果他们还没有登录在他们这样做然后"安装"应用程序,批准我的应用程序密钥.然后他们被送回应用程序,在那里我交换代码以获取访问令牌并执行其他操作,例如存储用户.当他们回到服务器并且我无法决定如何测试所有内容时会发生很多事情.对于其中一个我甚至无法测试此路由,除非所有返回的参数都有效(签名,hmac,时间戳).
我想我可以使用Casper登录shopify并遵循流程.
如何使用有效的get参数测试这个非常复杂的登录流程?
所有本地的东西都很容易测试,比如数据库调用.但是我不能伪造/模拟密钥和访问令牌交换.
通常,OAuth 2登录流程的工作方式如下:
3xx重定向到您(在您的情况下)Shopify.3xx被发回,将您重定向到不同的路线.想想您的路线将如何进行单元测试.
3xx不执行任何其他操作的情况下发送回来.3xx.所以对于第一个路由,你真的只是测试GET请求发回一个3xx.对于第二种,您可能希望测试服务器对其获取的用户对象所做的任何事情.
但正如您所提到的,如果用户和服务器已经过身份验证,Shopify将仅发回用户对象,并且您不会使用单元测试执行此完整的身份验证.你想做的就是嘲笑Shopify的回应!IE浏览器.当请求进入第二条路径并且您处于测试环境中时,不要使用Shopify进行身份验证,只需模拟您将返回的用户对象并继续执行您通常对该对象执行的任何操作.如果你想进行真正的单元测试,这就是你要走的路.
或者,您可能希望对整个过程进行完全集成测试.有很多方法可以做到这一点,但基本上你会经历我上面概述的1-5个步骤.您可能想要使用Spotify建立一个用于此测试的帐户.
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |