Ich beginne gerade mit Ruby und Rspec, also wenn ich nicht sehr spezifisch bin entschuldige ich mich für meine schlechte Syntax im Voraus.Aufruf einer Methode aus einer anderen Klasse ruby
Ich habe zwei Klassen, Flughafen und Wetter, die sollten kommunizieren, damit ich die stormy?
Methode in Wetter vom Flughafen anrufen kann. Ich möchte verhindern, dass Flugzeuge abheben, wenn das Wetter schlecht ist. Ich habe definiert eine bad_weather
Methode, aber es funktioniert nicht Hier ist mein Code:
Mein Test in Rspec
describe Airport do
it ' does not allow planes to take off with stormy weather' do
subject.take_off double(:plane)
expect {(weather).to be_stormy?}.to raise_error "Flight cancelled due to bad weather"
end
end
Die Klasse ich die Methode nehmen wollen von
class Weather
def stormy?
roll >= 6
end
private
def roll
rand(10)
end
end
Und die Klasse möchte ich die Methode in
class Airport
DEFAULT_CAPACITY = 10
def initialize
@planes = []
@capacity = DEFAULT_CAPACITY
end
def take_off(plane)
fail "Flight cancelled due to bad weather" if bad_weather?
@planes.pop
end
def bad_weather?
weather = Weather.new
weather.stormy?
end
end
anrufen
Ich kenne meinen Rspec Test miserabel, jede Hilfe wäre willkommen.
Was macht es stattdessen? – 13aal