ホームページ  >  記事  >  バックエンド開発  >  構造体リテラルの *gorm.DB 値として、mockDB (*MockDB 型の変数) を使用できません

構造体リテラルの *gorm.DB 値として、mockDB (*MockDB 型の変数) を使用できません

WBOY
WBOY転載
2024-02-14 22:10:08744ブラウズ

構造体リテラルの *gorm.DB 値として、mockDB (*MockDB 型の変数) を使用できません

PHP 開発では、MockDB (MockDB 型変数) を構造内の gorm.DB 値として使用すると、問題が発生する可能性があります。この場合、MockDB を gorm.DB に直接割り当てることはできません。これにより、コードのコンパイルに失敗したり、実行時エラーが発生したりする可能性があります。この問題に関して、PHP エディターの Xigua は、型変換を使用したり、構造内の gorm.DB 値が正しく割り当てられるようにコード ロジックを再設計したりするなど、他の方法で対処することを提案しました。正しい方法を使用してこの問題を処理すると、不要なエラーや例外を回避し、コードの信頼性と安定性を向上させることができます。

質問内容

postgresデータベースから演習問題を取得するget関数を作成しました。模擬テストを作成しましたが、構造からこのエラーが発生しました。どうすれば修正できますか?

*gorm.db 構造を持つハンドラー構造を使用しました。

###間違い:###

mockdb (*mockdb 型変数) を構造リテラルの *gorm.db 値として使用することはできません

リーリー リーリー

模擬テストにハンドラー構造を使用したい

解決策

mockdb

と gorm の db は 2 つの異なる構造なので、使用できませんそれらは交換可能です。同じインターフェイスを実装している場合は、同じ場所で使用できます。例えば:### リーリー これで、*gorm.db

をコード内の

registerroutes 関数に渡すことができます。 mockdb 構造体が store インターフェースのすべてのメソッドを実装している場合、テスト目的で使用できます。

以上が構造体リテラルの *gorm.DB 値として、mockDB (*MockDB 型の変数) を使用できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。