私は少し動いていますが、いくつかのテストを行っている間にこの奇妙な状況を発見しました。構造体のフィールドが復帰する
フィールドを変更する必要がある別のメソッドに変数を送るためにstructのメソッドを使用していますが、最後にチェックすると、フィールドが最初の値に戻り、混乱します。
func (this TVManager) sendMessage(message string) {
fmt.Println("5", this.connector)
payload := map[string]string {
"id": "0",
"type": "request",
"uri": "ssap://system.notifications/createToast",
"payload": "{'message': 'This is a message'}"}
this.connector.sendCommand(payload)
fmt.Println("4", this.connector)
}
これは私がテストしているメソッドで、コネクタのsendCommandを呼び出します。
func (this MockConnector) sendCommand(payload map[string]string) {
fmt.Println("0", this)
this.last_command = payload
this.value = true
fmt.Println("0", this)
}
私が使っているモックオブジェクトでは、この構造体フィールドの値を単純に変更しています。
manager.sendMessage("This is a message")
fmt.Println("1", connector)
assert.Equal(t, expected, connector.last_command, "Command should be equal")
しかし、私がチェックすると、内部に戻ります。私はいくつかのプリントを設定してdトラックに値を試し、期待どおりに値を変更しますが、それは元に戻ります。
1 {false map[]}
5 {false map[]}
0 {false map[]}
0 {true map[uri:ssap://system.notifications/createToast payload:{'message': 'This is a message'} id:0 type:request]}
4 {false map[]}
1 {false map[]}
--- FAIL: TestTVManagerSendsNotificationDownToConnector (0.00s)
これは、私はいくつかの移動を学ぶためにオーバーつもりだだけの小さなプログラムですので、私は任意のヘルプ誰もが私を与えることができ感謝しています。
ありがとう、私はそれが何かを持っていたと思っていたが、このfunc(このMockConnector)sendCommand(* payload map [string] string)のような実際のペイロードへのポインタを渡そうとした。 Pythonのバックグラウンドのようにポインタは私が慣れるために必要なものです。 – cllamach
また、受信者の名前として何か使用できますか?レシーバのコミュニティには良いコード名はありませんか?それはどういうわけか....解放している。ご協力いただきありがとうございます。 – cllamach
あなたが望むものを使用してください。この場合、 'mock'や' conn'などを使用しますが、それは私だけです...名前を選ぶときにパラメータであるとふりまとうのがよいでしょう。 –