【问题标题】:Where does FactoryGirl save db entries in a Rails API app?FactoryGirl 在 Rails API 应用程序中将数据库条目保存在哪里?
【发布时间】:2017-05-16 14:04:47
【问题描述】:
我对 Rails 还很陌生,目前正在创建我的第一个仅 API 的 rails 应用程序。
我苦苦思索的是,测试环境中的条目究竟存储在哪里?在完整的 Rails 应用程序中,FactoryGirl 会将条目存储在 _test 数据库中并传递给控制器 - 通过 RSpec 之类的东西进行测试。
我了解,在 Rails API 应用程序中,您不使用数据库,而是打算在服务器上以 JSON 格式存储数据 - 但在我编写请求规范的情况下,信息存储在哪里/从...获得?没有服务器(本地或远程)来保存数据!?
为我的新手问题道歉!
【问题讨论】:
标签:
ruby-on-rails
rspec-rails
【解决方案1】:
JSON 只是您用来进行客户端和服务器通信以及向后通信的格式。但是数据也存储在数据库中。这是我在 rails api 项目中编写的用于保存类别的规范(它是请求规范)。
context 'everything is ok' do
it 'gets a successfull response' do
params = { category: category }.to_json
post "/categories", headers: headers.merge("X-Api-Key" => partner.token), params: params
json = JSON.parse(response.body)
expect(json['success']).to be true
expect(json['category']['name']).to eq 'Programming Languages'
end
end
只是给你一个想法,我不是测试专家,我也在学习。
【解决方案2】:
而是旨在将数据以 JSON 格式存储在服务器上
不。那将是愚蠢的。 Rails API 应用程序是一个常规的 Rails 应用程序(带有数据库等)。只有它可以减少 html 视图渲染(ERB 等)。这是主要区别。