2014-11-18 25 views

Antwort

16

Sie setzen das Präfix describe mit RSpec, z. RSpec.describe weil es sich anhört, als ob du eine moderne Version von RSpec verwendest, die Affe-Patches deaktiviert.

19

Das zugrunde liegende Problem ist das grundlegende Objekt main keine describe Methode hat, es sei denn Sie geben ihm eine, die durch die Fehlermeldung „nicht definierte Methode describe für Hauptobjekt“ reflektiert wird.

Offhand, kann ich zwei Möglichkeiten denken, dieses Problem zu beheben:

1) Ruf RSpec.describe statt nur describe

require 'rspec' 
require './RubyOffRailsTuts/classes/furlong' 

RSpec.describe Furlong do 
end 

2) Rufen Sie include RSpecdescribe zur Verfügung main

require 'rspec' 
require './RubyOffRailsTuts/classes/furlong' 

include RSpec 

describe Furlong do 
end 
zu machen
+1

Das Problem ging weg, wenn ich entfernt ‚erfordern rspec‘, tat 'gem rspec' nach cd-ing in die rubin 2 Binärordner installieren, das Hinzufügen dieser rspec Bibliotheken zu meinem Build-Pfad und die Spezifikation als Test und nicht Skript ausgeführt . Ich habe das obige Projekt vor einiger Zeit gelöscht, aber ich werde versuchen, es neu zu erstellen. Danke für deine Antwort. –

23

Alternative zum Voranstellen describe als RSpec.describe, können Sie

config.expose_dsl_globally = true 

zu Ihrem spec_helper.rb hinzuzufügen.

12

ich mit sevenseacat zustimmen, dass Sie wahrscheinlich eine moderne Version von RSpec verwenden, die Affen Patchen deaktiviert.

Diese Sperrung standardmäßig durchgeführt, wenn die spec_helper.rb Datei erstellt, wenn Sie so etwas wie

$ rails generate rspec:install 

In spec_helper.rb tun, werden Sie einen Abschnitt sehen, die wie folgt aussieht:

# Limits the available syntax to the non-monkey patched syntax that is 
# recommended. For more details, see: 
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax 
# - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ 
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching 
config.disable_monkey_patching! 

Sie kann diese letzte Zeile auskommentieren.

Allerdings ist die empfohlene Vorgehensweise nicht Affe Patchen zu verwenden, und RSpec.describe verwenden.

Verwandte Themen