Ich stecke in Controller-Tests, mit einer Methode zu testen, die in einem Modul definiert ist. Hierrspec stub gibt nil zurück, wenn mit Argumenten übergeben
ist das Modul
module CommonConcern
extend ActiveSupport::Concern
...
def fetch_suggested_portfolio(user_portfolio, amount)
PortfolioService::Suggestion
.call(duration: user_portfolio.duration,
risk_level: user_portfolio.risk_level,
amount: amount,
investment_plan: user_portfolio.investment_plan,
portfolio_type: user_portfolio.portfolio_type)
end
Hier ist die Steuerung mit Aktion, wo die Methode
@portfolio_suggestion_object = fetch_suggested_portfolio(arg1, arg2)
Jetzt wird aufgerufen, wenn Ich überprüfe meine Stub Linie mit binding.pry es gibt null
zurückwealthy.stub(:fetch_suggested_portfolio).with(@portfolios, @portfolios.amount).and_return("suggested_portfolios")
Auch nächste Zeile dh
wealthy.fetch_suggested_portfolio.should be("suggested_portfolios")
gibt Fehler wie folgt:
Failure/Error: wealthy.fetch_suggested_portfolio.should be("suggested_portfolios")
ArgumentError:
Wrong number of arguments. Expected 2, got 0.
Auch 'rspec-Schienen' Ich bin mit '3.4.2'
Was ist falsch mit meinem Code, jede Hilfe wird wirklich geschätzt.
Wenn Sie 'wohlhabendes.fetch_suggested_portfolio' aufrufen, übergeben Sie keine Argumente. Der Stub funktioniert nur, wenn Sie die 'with' Erwartung erfüllen. Sie definieren die Methode UND den Stub, um 2 Argumente – jaydel