Ich möchte für eine verspottete Methode das Verhalten definieren, dass, wenn es in einem Test aufgerufen wird, alle für diesen Test spezifischen EXPECTED_CALL
und ON_CALL
überprüft werden, aber immer noch die ursprüngliche Methode wird danach ausgeführt.Wie man korrekte Scheinmethoden aufruft Original virtuelle Methode aufrufen
1
A
Antwort
1
Sie können dies erreichen, indem die delegierenden-to-real-Technik, wie pro Google Mock documentation:
Sie die delegierenden-to-real nutzen Technik, um sicherzustellen, dass Ihr Mock das gleiche Verhalten wie die realen hat Objekt unter Beibehaltung der Fähigkeit, Anrufe zu validieren. Hier ein Beispiel:
using ::testing::_;
using ::testing::AtLeast;
using ::testing::Invoke;
class MockFoo : public Foo {
public:
MockFoo() {
// By default, all calls are delegated to the real object.
ON_CALL(*this, DoThis())
.WillByDefault(Invoke(&real_, &Foo::DoThis));
ON_CALL(*this, DoThat(_))
.WillByDefault(Invoke(&real_, &Foo::DoThat));
...
}
MOCK_METHOD0(DoThis, ...);
MOCK_METHOD1(DoThat, ...);
...
private:
Foo real_;
};
...
MockFoo mock;
EXPECT_CALL(mock, DoThis())
.Times(3);
EXPECT_CALL(mock, DoThat("Hi"))
.Times(AtLeast(1));
... use mock in test ...
Verwandte Themen
- 1. Versuch aufrufen virtuelle Methode
- 2. Wie virtuelle Methode ohne polymorphe Wirkung aufrufen?
- 3. C++ virtuelle Methode in der Kinderklasse aufrufen
- 4. Python: Wie man eine Methode richtig aufruft?
- 5. argparse: Wie man eine Methode anstelle einer Funktion aufruft?
- 6. wie man eine Methode aufruft, ohne ihre Unterklasse aufzurufen
- 7. cellForRowAtIndexPath Methode aufruft, nicht
- 8. Versuch, virtuelle Methode auf null Objektverweis aufrufen (JAVA, AS)
- 9. Versuch, virtuelle Methode ‚.isPlaying()‘ auf ein Null-Objekt Verweis aufrufen
- 10. Testwinkel Service interne Methode aufruft
- 11. Suche Versuch virtuelle Methode auf NULL-Verweis aufrufen
- 12. Versuch, virtuelle Methode ‚int java.lang.Object.hashCode()‘ in Facebook Integration aufrufen
- 13. Versuch aufrufen virtuelle Methode ‚java.lang.String android.content.Context.getPackageName() auf getActivity()
- 14. Fehler beim Handler Versuch aufrufen virtuelle Methode ‚boolean android.os.Handler.sendMessage
- 15. Wie man die Methode einer Klasse aufruft, wenn eine andere Methode der Klasse aufgerufen wird (Ruby)
- 16. Wie man getFragmentManager auf Recycler.Adapter aufruft?
- 17. Wie man eine Methode ersetzt, ohne das Original zu verlieren?
- 18. Eine korrekte/gebräuchliche Methode zum Aufzeichnen von Async-Aufrufen
- 19. Wie kann man ohne Parameter Methode aufrufen?
- 20. C++: virtuelle Funktion aufrufen Eltern
- 21. Wie man eine Methode asynchron in PyQt5 mit Python3 aufruft?
- 22. Wie man eine Methode aufruft, wenn array.find() nichts zurückgibt?
- 23. Wie man eine statische Methode der Klasse aufruft?
- 24. Wie erben generische virtuelle Methode?
- 25. Korrekte Ausnahmebehandlung beim Aufrufen der WCF-Rückrufmethode
- 26. rein virtuelle Methode namens
- 27. ios JTCalendar Wie man eine Methode aufruft, wenn man horizontal wischt, um die Seite zu wechseln?
- 28. Wie Methode in Methode aufrufen?
- 29. Wie Original hashCode() verwenden Methode, nachdem es
- 30. Wie man Informationen über eine Funktion erhält und sie aufruft