我有一个Twitter应用程序。我们所有的用户都直接来自Twitter。这意味着,除非您从Twitter登录,否则您无法与应用程序进行任何重要的交互。我们的应用程序缓存(将用户的Twitter数据保存在数据库中)。
可以将Capybara与Omniauth整合。例如,测试OAuth与Twitter的集成。我在网上看了几篇关于此的文章。然而,棘手的部分是让它与Devise + Omniauth合作(我只看到了很少的文章,试过它们都无济于事)。
其次,我也考虑过将测试文件上传到S3,因为我们使用JS(Uploadify)直接上传到S3,然后指示Carrierwave获取文件。
有些人提到最好提供模拟数据,而不是直接尝试测试OAuth。我想,他们试图建议的是用模拟Twitter数据为测试数据库播种。这样,我可以直接在应用程序中测试用户。无需担心如何使用Rspec + Capybara + Devise + Omniauth + Twitter进行测试。
我也可以为文件上传做同样的事情。这有意义吗?这是一种明智的做法吗?
答案 0 :(得分:0)
通过事先为数据库添加适当的数据,您可以避免处理Omniauth等的所有集成测试问题。由于库本身无论如何都已经过测试,您也可以避免和不必要的开销。
所以是的 - 立即为您的数据库添加数据。
答案 1 :(得分:0)
OmniAuth有integration testing的助手..我写了post关于这个,它可能对你有帮助..