Ruby TypeError: keine implizite Konvertierung von String in Array

Ich habe einen test zurück TypeError: no impliciit conversion of String into Array, wenn es trifft, einen bestimmten Ausschnitt von meinem code. Wenn ich den code auszuführen, der außerhalb von rspec läuft es Prima, also ich bin mir nicht sicher, warum dies geschieht.

require 'spec_helper'
require 'digital_ocean_size_list'

describe Chef::Knife::DigitalOceanSizeList do
  subject { Chef::Knife::DigitalOceanSizeList.new }

  let(:access_token) { 'FAKE_ACCESS_TOKEN' }

  before :each do
    Chef::Knife::DigitalOceanSizeList.load_deps
    Chef::Config['knife']['digital_ocean_access_token'] = access_token
    allow(subject).to receive(:puts)
  end

  describe "#run" do
    it "should validate the Digital Ocean config keys exist" do
      expect(subject).to receive(:validate!)
      subject.run
    end
....

Es testen folgenden code

require 'chef/knife/digital_ocean_base'

class Chef
  class Knife
    class DigitalOceanSizeList < Knife
      include Knife::DigitalOceanBase

      banner 'knife digital_ocean size list (options)'

      def run
        $stdout.sync = true

        validate!

        size_list = [
          ui.color('Slug',   :bold)
        ]

        client.sizes.all.each do |size|
          size_list << size.slug.to_s
        end

        puts ui.list(size_list, :uneven_columns_across, 1)
      end
    end
  end
end

Art Fehlermeldung kommt vom client.Größen.alle.jeder. Der code läuft wunderbar, ich bekomme nur die Art Fehler, wenn es von rspec.

Können Sie eine SSCCE für den Fehler? Mit allen die speziellen Klassen und erfordert, es gibt keine Möglichkeit für mich, um den code zu testen für mich.

InformationsquelleAutor gregf | 2014-11-08

Schreibe einen Kommentar