2017-02-14 3 views
0

Ich arbeite mit Gurke/Ruby und ich wollte ein neues Modul mit einigen Methoden erstellen, um sie in meinen Schrittdefinitionen zu verwenden.Gurke: Kann man die Methoden eines Moduls in der Welt nicht sehen?

Ich habe gelesen, wie dies hier zu tun ist, https://github.com/cucumber/cucumber/wiki/A-Whole-New-World. Aber wenn ich versucht habe, die folgende bekomme ich einen Fehler:

  • erstellen Sie das neue Modul unter /root_location/lib/new_module.rb
  • das Modul erstellen, wie:

.

module Newmodule 
    def here 
    puts "here" 
    end 
end 
World(Newmodule) 

Allerdings, wenn ich dann versuchen, die ‚hier‘ Methode aus meinen Schritt Definition zu verwenden, erhalte ich nur:

undefined local variable or method `here' for # (NameError)

Jede Idee, was ich falsch mache?

+0

Warum die Gurke-jvm-Tag? Ihre Frage ist Ruby nicht Java fokussiert. – MikeJRamsey56

+0

Weil, wie Sie aus der Antwort unten sehen können, es keine Ruby-Frage ist, es hat mit dem Gurken-Framework zu tun ... also denke ich, das ist immer der Fall in Bezug auf die Sprache. – mickael

+0

Diese Antwort würde nicht für Gurke-jvm funktionieren. Sie müssen Klebeverzeichnisse definieren. Siehe zum Beispiel http://StackOverflow.com/Questions/17491989/Cucumber-Options-annotation – MikeJRamsey56

Antwort

0

Das Modul muss sich in features befinden, andernfalls wird es nicht in World hinzugefügt. Gurke schaut nicht außerhalb von Funktionen nach irgendetwas, wenn Sie es nicht ausdrücklich angeben.

Setzen Sie diesen Code entweder in features/support oder features/step_definitions

+0

Danke Diabolisten, das wusste ich nicht. Ich wusste, dass ich eine Datei.rb unter der Unterstützung erstellt habe, wo ich die Ruby-Datei, die ich in meiner Bibliothek habe und von hier aus in die Welt exportiert habe, benötigte. Vielen Dank! – mickael

+0

Ihr Willkommen Mickael. – diabolist

Verwandte Themen