Frage

Soweit ich weiß, ist should_receive nur Mock-Objekte angewendet. Was ich will, ist zu überprüfen, ob eine bestimmte Klasse (nicht Gegenstand) erhielt eine bestimmte Nachricht, wie:

User.should_receive(:all).once

Wie kann ich das tun?

UPD. Üblicherweise Schreiben Test für Modelle und Controller wir können Schreib User.should_receive (: smth) .Sobald. Aber in meinem Fall teste ich eine beliebige Klasse aus dem Ordner lib, und irgendwie immer erhalte ich die folgende Meldung:

<User( [fields] ) (class)> expected :all with (no args) once, but received it 0 times>

Alle Ideen, warum ist das so? Ein Test sieht irgendwie die Benutzerklasse, kann aber nicht, wenn es eine Nachricht empfängt. Natürlich habe ich überprüft zehnmal, dass der Benutzer is tatsächlich eine Nachricht zu bekommen.

War es hilfreich?

Lösung

Ganz einfach:

User.should_receive(:all).once
  

Was ich will, ist zu überprüfen, ob eine bestimmte Klasse (nicht Gegenstand) erhielt eine bestimmte Nachricht

Eine Klasse is ein Objekt!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top