所以我正在尝试为我的API编写一些测试
我有这个网址 / V1 /用户API_KEY = 1: - ?XsF99m7wcvFFzTt-JS
如果我在浏览器中访问它可以正常工作并返回一些JSON。
然而,在我的测试中是
require 'rails_helper'
RSpec.describe "GET /users/index" do
it 'returns a 200' do
get "/v1/users?api_key=1:--XsF99m7wcvFFzTt-Js"
expect(response.status).to eq(200)
end
end
当我运行RSpec时,它会给我这个错误
ActionView::MissingTemplate:
Missing template v1/users/index, api_v1/index, application/index with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder]}. Searched in:
我不明白为什么我将网址粘贴到浏览器中就好了。
首先,respec测试有什么问题吗? 另外在调试方面你打算怎么调试?因为我无法看到任何日志文件,如果你通过浏览器这样做,会看到development.log填满
答案 0 :(得分:3)
从我收集的内容中,您尝试测试API的JSON响应。但是,您似乎在GET请求中请求HTML格式。
您对users/index
JSON视图的看法是什么?如果是,那么这是您的错误来源,并在format: :json
请求中指定GET
应该可以解决问题。您还可以使用
before do
request.accept = "application/json"
end
在你的描述行动开始时。
根据您的原始问题,RSpec测试记录在log/test.log
。
答案 1 :(得分:0)
render_views
添加到您的describe块。test.log
文件夹中的/log/
。