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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern
Zu
In meinem Fall, der Fehler trat auf, weil der Wert, den ich gesetzt hatte zu array nicht
[]
, so dass ich wickeln Sie es mit[]
und es funktioniert.InformationsquelleAutor Michael