問題タブ [testify]
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.
http - http.Client をモックしようとしてエラーが発生する
http.Client をモックするためにこの投稿を見て使用しましたが、モック リクエストを渡そうとすると、次のエラーが表示されます。mockClient (タイプ *MockClient の変数) を *"net/http".Client として使用できません。 api.callAPI への引数の値。
1 つのファイルには、実際のコードがあります。
HTTPClient を作成しました。
HTTPClient をインターフェイスとして渡す関数があります (仕事用なのですべてを表示することはできませんが、ここに重要な部分があります)。
callAPI メソッドを呼び出す別の関数もあります。その関数では、callAPI 関数を呼び出す直前にクライアント変数を作成します
これはすべてうまくいきます。ただし、私のテストファイルでは、上記のエラーが発生します。私はモックフレームワークにtestifyを使用しています。これが私のテストファイルにあるものです(テストファイルと実際のコードの両方が同じパッケージに含まれています):
testify を使用してモック クライアントと Do 関数をセットアップする
次に、テストを作成します。
Client 変数で行ったのと同じように、mockclient 変数で同様のことを試みました。
しかし、HTTPClient でこのエラーが発生します: undeclared name: HTTPClient. それらは同じパッケージの一部であるため、なぜこれが起こっているのかわからないので、簡単にエクスポートできると思いましたか?
go - テスト ケースでの Golang データ競合状態
だから私はいくつかのパイプラインを持っています。2 つのファイルを行ごとに比較し、データベースへのロードなどを行う必要があります。単一行を処理するためのタイムアウトを設定し、到達した場合はパイプラインを中断したいと考えています。エンドポイントに入るのは functionRun()
です。ここでは、いくつかの検証を行い、コマンドで構造を作成します
その後、fuctionrun()
で、単一の goroutine で stdout の処理を開始comm
し、ubuntu でメイン プロセス コマンドを実行します。まあ、それは正常に動作し、私はそれをレースにチェックしました:
go build --race
, go run --race
. 出力に問題はありません。しかし、単純なロジックをチェックするテストがあります。ほぼ問題なく動作しますが、10 回実行する前に 1 回失敗します。これを調査した後、このテストで競合状態が見つかりました。誰かが説明できますか、何がうまくいかないのですか?