首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何使用Grape请求测试?

我如何使用Grape请求测试?
EN

Stack Overflow用户
提问于 2014-10-26 02:43:37
回答 2查看 1.3K关注 0票数 1

响应体返回“带有葡萄实体的格式化的json”,但是first_prefered返回完整的对象(json格式)。

如何转换first_prefered对象,以便使用葡萄实体获取公开的字段?

FeaturedHomekeeperResponseEntity:

代码语言:javascript
复制
module API::V1::Entities
  class FeaturedHomekeeperResponseEntity < Grape::Entity
    expose :id, documentation: { type: 'integer', desc: 'ID' }
    expose :featured_type, documentation: { type: 'string', desc: 'Featured Type' }
  end
end

测试:

代码语言:javascript
复制
let(:address) { Fabricate(:address) }

      it 'should return the first prefered homekeeper of an address' do
        first_prefered = Fabricate(:featured_homekeeper_as_first_prefered, address: address)

        get "/api/v1/addresses/#{address.id}/prefered/first"

        expect(json).to eq(YAML.load(first_prefered.to_json))
      end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-26 08:09:25

我认为您不应该使用Grape::Entity来格式化测试场景中的数据。因为这是一个验收/集成测试,所以应该从用户的角度来编写。它应该包含尽可能少的代码相关内容。您应该手动从JSON中选择键/值。

票数 3
EN

Stack Overflow用户

发布于 2014-10-26 07:58:20

Entity类有一个表示方法。所以

代码语言:javascript
复制
API::V1::Entities::FeaturedHomekeeperResponseEntity.represent first_prefered

将返回演示者对象。

代码语言:javascript
复制
 API::V1::Entities::FeaturedHomekeeperResponseEntity.represent(first_prefered).to_json()

应该还你想要的json。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26569291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档