rails minitest api连接-nomethoderror:未定义的方法'call'

vh0rcniy  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(242)

我想为服务创建一个minitest,该服务负责在外部提供者内部创建数据,并更新数据库中的一些内容。为此,我使用vcr和以下测试:


# test/services/identity_checks/check_creator_test.rb

require 'test_helper'

module IdentityChecks
  class CheckCreator < ActiveSupport::TestCase
    setup do
      VCR.insert_cassette name
      identity_check.user_id = user.id
    end

    teardown do
      VCR.eject_cassette
    end

    test 'update status' do
      service
      identity_check.reload
      assert_equal 'Not started', identity_check.status
    end

    private

    def service
      ::CheckCreator.new(identity_check).call
    end

    def identity_check
      @identity_check ||= identity_checks(:in_progress)
    end

    def user
      @user ||= users(:registered)
    end
  end  
end

和测试服务:


# app/services/identity_checks/check_creator.rb

module IdentityChecks
  class CheckCreator
    def initialize(identity_check)
      @identity_check = identity_check
    end

    def call
      response = api.create_check(options: build_options)
      identity_check.update!(check_uuid: response['id'], status: response['status_label'], check_body: response)
    end

    attr_accessor :identity_check

    private

    def api
      @api ||= ::Identity::Api.new
    end
  end
end

使用此代码,我得到一个错误:
nomethoderror:未定义的方法 call' for #<IdentityChecks::CheckCreator test/services/identity_checks/check_creator_test.rb:31:in 服务'test/services/identity\u checks/check\u creator\u test.rb:23:in'block in class:checkcreator'
我以为是因为录像机,但当我扔掉它时,它还是一样。rails控制台内部一切正常。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题