問題タブ [go-sqlmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
90 参照

go - 異なる DAO で同じ DB トランザクションを使用する

Golang アプリケーションの 1 つで、API で複数のテーブルを更新するユースケースがあり、更新の 1 つが失敗した場合、以前のすべての更新をロールバックする必要があります (Java で @Transactional が行うこと)。以下の方法でやってみました。

しかし、Update1 および Update2 メソッドで新しいトランザクションを作成しているため、これは機能しません。そこで、以下のようにメソッド Update1 & Update2 のメソッド パラメータでトランザクションを渡そうとしました。

しかし、問題は、メソッド Update1 だけを呼び出す必要がある場合です。その場合、Update1 メソッドで渡されるトランザクションの値は何でしょうか?

または、それを行うためのより良い方法があります。誰か助けてくれませんか?

0 投票する
1 に答える
106 参照

unit-testing - Goでマッピングを使用して選択をモックすると、予想されるトランザクション開始エラーが返されます

go-sqlmock を使用して選択を行い、マップされた ID を返す簡単な単体テストを実行しようとしています。以下のコードスニペット

テストしたい実装のスニペットは次のとおりです。

しかし、次のエラーが発生します。

ここに画像の説明を入力

いくつかの例を試しましたが、成功しませんでした。皆さんの助けに感謝します

アップデート


s.sqlmock.ExpectBegin() and s.sqlmock.ExpectCommit()コードを削除して、次のようにクエリを変更しようとしました。

しかし、次のエラーが発生します。

クエリ: 実際の SQL と一致しませんでした: "select id from project where id = ? and archived = 1" と予想される正規表現 "select id from project where id = ? and archived = 1"