ruby-on-rails – 在前端运行集成/验收测试.需要前端的API来告诉
我的前端是一个基于EmberJS的应用程序.这是完全不同步的,所以用Capybara测试是
pain和
misery.另一方面,Ember提供了一个梦幻般的测试套件开箱即用,使验收测试有趣和有效.
通常,夹具或后端模拟都用于验收Ember应用程序.但是,针对嘲笑的测试根本不能满足我的需求: >它不会显示后端和前端之间的API不一致,竞争条件等. 所以我想测试反对真正的后端!将Ember设置为使用本地后端实例进行测试是微不足道的.但问题是后端将在各个测试之间持续其状态甚至测试会话. 这就是为什么我正在考虑在Rails中实现一个特殊的公共API: >仅当使用特定标志或env var运行Rails时,API才可用. 我是一个前沿开发者,具有粗略的Rails知识. Factory Girl和Database Cleaner似乎是工作的正确工具,但绝对没有信息如何在Rails正常测试环境之外使用它们.我想我需要一个控制器或一个Rails引擎或某些东西. 所以问题是:如何在Rails中使用可以由前端使用的API来告诉Rails使用fixture工厂设置某个数据库状态,而Rails是以非测试模式运行的.即提供REST API并且不通过RSpec / Capybara / Cucumber运行? 奖励功能:灯具工厂属性应在前端定义,以便测试代码存储在一个地方.因此,后端应该能够通过特殊的API接受夹具工厂属性.仍可以在后台的代码库中定义默认值. 我相信这可能成为接受/集成测试的最佳实践.如果我设法实现它,我保证发布一个宝石. 解决方法
可能是这样的事情
配置/ routes.rb中 namespace 'test_api' do resource 'db_transaction',only: [:create,:destroy] end if Rails.env.test? 控制器/ test_api / db_transactions_controller.rb require 'database_cleaner' def create DatabaseCleaner.start end def destroy DatabaseCleaner.clean end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |