2016-05-17 6 views
1

ich überprüfen möchten, dass Pandoc.convert mit to: :docx Option wie folgt aufgerufen:erwarten (Klasse) .to erhalten (: x) .mit (hash_including (y: z)) funktioniert nicht

options = {to: :docx} 
PandocRuby.convert("some string", options) 

ich habe folgende Erwartung in einer spec:

expect(PandocRuby).to receive(:convert).with(hash_including(to: :docx)) 

die Spezifikation wie dies fehlschlägt:

Failure/Error: expect(PandocRuby).to receive(:convert).with(hash_including(to: :docx)) 

    (PandocRuby (class)).convert(hash_including(:to=>:docx)) 
     expected: 1 time with arguments: (hash_including(:to=>:docx)) 
     received: 0 times 

Aber wenn das Debuggen, options ist wie folgt:

[2] pry(#<ReportDocumentsController>)> options 
=> { 
    :to => :docx, 
    :reference_docx => "/Users/josh/Documents/Work/Access4All/Projects/a4aa2/src/public/uploads/report_template/reference_docx/1/reference.docx" 
} 

Ich glaube, ich bin die falsche RSpec Matcher (oder die rechten in der falschen Art und Weise), aber ich kann sie nicht arbeiten.

Antwort

2

Sie müssen nur alle Verfahren Argumente erwarten:

expect(PandocRuby).to receive(:convert).with("some string", hash_including(to: :docx)) 

Oder Sie einen Matcher über das erste Argument zu sein, weniger spezifisch verwenden könnten, zum Beispiel

expect(PandocRuby).to receive(:convert).with(an_instance_of(String), hash_including(to: :docx)) 
+0

Perfekt, danke. –