Ruby 我试图为一个从不同类调用另一个方法的方法编写RSpec测试用例

Ruby 我试图为一个从不同类调用另一个方法的方法编写RSpec测试用例,ruby,Ruby,我试着用这种方法测试资产。考试通过了,但我想知道这样做是否正确。如果这种方法完全错误,那么请建议正确的方法。我尝试使用RSpec存根测试NodePackage类的assets方法。使用RSpec mock的消息期望 通常,RSpec支持使用测试方法调用。消息期望对测试加倍有效,但您可以在中阅读更多有关完整功能的信息。嘿,欢迎使用SO!将代码粘贴到问题中,而不是添加问题的图像。检查是否只想测试它是否调用其他方法?确保没有发生其他错误,例如Helpers::GithubAssetTypeHelpe.

我试着用这种方法测试资产。考试通过了,但我想知道这样做是否正确。如果这种方法完全错误,那么请建议正确的方法。我尝试使用RSpec存根测试NodePackage类的assets方法。

使用RSpec mock的消息期望
通常,RSpec支持使用测试方法调用。消息期望对测试加倍有效,但您可以在中阅读更多有关完整功能的信息。

嘿,欢迎使用SO!将代码粘贴到问题中,而不是添加问题的图像。检查是否只想测试它是否调用其他方法?确保没有发生其他错误,例如Helpers::GithubAssetTypeHelpe.assetsasset_type、搜索_,其中名称空间很可能不正确。您可能还想展示您是如何尝试使用rspec进行测试的,我们很可能能够发现您知道的内容和缺少的内容。
# NodePackageAssetFile

require 'asset_ingester/asset_type/base_asset_type'
require 'asset_ingester/helpers/github_asset_type_helpers'

module AssetIngester
  module AssetType
    class NodePackage < BaseAssetType
      def self.asset_type
        'node_package'
      end

      def self.search_terms
        ["'registry' in:file filename:.npmrc "]
      end

      # Public: Retrieves all node package assets from Github
      #
      # Returns an array of github asset objects sorted by full name
      def self.assets
        Helpers::GithubAssetTypeHelpers.assets(asset_type, search_terms)
      end
    end
  end
end
# Rspec I tried for asset method

 describe '#assets' do
    let(:nodePackage) do
      [id: 131690,
        name: 'acm-care-management-js',
        full_name: 'AcuteCaseManagementUI/acm-care-management-js',
        owner_name: 'AcuteCaseManagementUI',
        owner_url: 'https://github.cerner.com/api/v3/users/AcuteCaseManagementUI',
        owner_avatar_url: 'https://avatars.github.cerner.com/u/4095?',
        url: 'https://github.cerner.com/api/v3/repos/AcuteCaseManagementUI/acm- 
 care-management-js',
        html_url: 'https://github.cerner.com/AcuteCaseManagementUI/acm-care-management-js',
        asset_type: 'node_package']
      end
    it 'returns the node package assets' do
      allow(AssetIngester::Helpers::GithubAssetTypeHelpers).to receive(:assets).with('node_package',["'registry' in:file filename:.npmrc "]).and_return(nodePackage)
      key = AssetIngester::AssetType::NodePackage.assets
      expect(key).to eq(nodePackage)
    end
  end