Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt es eine Möglichkeit, einen neuen Gomock-Controller ohne NewController zu erstellen?

Gibt es eine Möglichkeit, einen neuen Gomock-Controller ohne NewController zu erstellen?

WBOY
WBOYnach vorne
2024-02-09 10:03:09732Durchsuche

有没有办法在没有 NewController 的情况下创建新的 gomock 控制器?

Das Erstellen neuer Controller ist ein häufiger Bedarf, wenn Gomock für Unit-Tests verwendet wird. Manchmal haben wir jedoch möglicherweise keinen NewController. Was sollen wir tun? Die Antwort ist ja! In Gomock können wir einen neuen Controller simulieren, indem wir einen Mock-Controller verwenden. Mit dieser Methode können wir einen Dummy-Controller zum Testen erstellen und verwenden, ohne dass eine tatsächliche Controller-Instanz vorhanden ist. Auf diese Weise können wir unsere Codelogik unabhängig testen, ohne von externen Ressourcen beeinflusst zu werden.

Frageninhalt

Gibt es, wie der Titel schon sagt, eine Möglichkeit, einen neuen Gomock-Controller ohne NewController zu erstellen? Kommentare in der Tüte sagen

// NewController returns a new Controller. It is the preferred way to create a
// Controller.

Ich habe mich gefragt, ob es eine Möglichkeit gibt, es ohne Konstruktor zu erstellen?

Ich habe viele Möglichkeiten ausprobiert, wie zum Beispiel die Erstellung mit new() und die direkte Zuweisung von Variablen, aber der Controller funktioniert nicht new() 创建它并直接分配变量,但控制器无法工作

解决方法

类型 Controller 有一个私有字段 expectedCalls 不能在构造函数之外设置。您需要使用 NewControllerWithContext

Problemumgehung 🎜🎜Der Typ Controller hat ein privates Feld expectedCalls kann nicht außerhalb des Konstruktors festgelegt werden. Sie müssen die Funktion NewController oder WithContext verwenden. 🎜

Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit, einen neuen Gomock-Controller ohne NewController zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen