テストがログ出力のキャプチャに失敗する

サチス・ムハンディラム:

UserRegister機能をテストしようとしていますhttp。リクエストが必要です。

ユーザーが既存の電子メールを入力した場合UserRegister、エラーログを返します(を使用logrus)。

logs "github.com/sirupsen/logrus"

func UserRegister(res http.ResponseWriter, req *http.Request) {

    requestID := req.FormValue("uid")
    email := req.FormValue("email")

    logs.WithFields(logs.Fields{
        "Service":  "User Service",
        "package":  "register",
        "function": "UserRegister",
        "uuid":     requestID,
        "email":    email,
    }).Info("Received data to insert to users table")

    // check user entered new email address
    hasAccount := checkemail.Checkmail(email, requestID) // returns true/false

    if hasAccount != true { // User doesn't have an account

        db := dbConn()

        // Inserting token to login_token table
        insertUser, err := db.Prepare("INSERT INTO users (email) VALUES(?)")
        if err != nil {
            logs.WithFields(logs.Fields{
                "Service":  "User Service",
                "package":  "register",
                "function": "UserRegister",
                "uuid":     requestID,
                "Error":    err,
            }).Error("Couldnt prepare insert statement for users table")
        }
        insertUser.Exec(email)
        defer db.Close()
        return
    } // user account created

    logs.WithFields(logs.Fields{
        "Service":  "User Service",
        "package":  "register",
        "function": "UserRegister",
        "uuid":     requestID,
        "email":    email,
    }).Error("User has an account for this email")


}

テストモジュールでは、以下を使用しました。

func TestUserRegister(t *testing.T) {
    rec := httptest.NewRecorder()
    req, _ := http.NewRequest("POST", "http://localhost:7071/[email protected]&uid=sjfkjsdkf9w89w83490w", nil)

    UserRegister(rec, req)

    expected := "User has an account for this email"

    res := rec.Result()
    content, err := ioutil.ReadAll(res.Body)

    if err != nil {
        t.Error("Couldnt read body", err)
    }

    val, err := strconv.Atoi(string(bytes.TrimSpace(content)))

    if err != nil {
        log.Println("Error parsing response", err)
    }
    if string(val) != expected { 
        t.Errorf("Expected %s, got %s", expected, string(content))
    }

}

結果:応答の解析エラーstrconv.Atoi: ""の解析:無効な構文

なぜ応答を変換できないのですか?

チェックされたスレッド:

文字列を整数に変換するこのGolangコードが失敗するのはなぜですか。

編集:@ chmike回答の

これはマイクロサービスの一部です。すべての応答はに書き込まれAPI-Gatewayます。関数を使用する。

しかし、ここでは単体テストを実行しUserRegisterて、期待どおりに機能するかどうかを確認したいだけです

chmike:

この関数はステータスのUserRegister書き込みresや設定を行いません結果として、から空の文字列を取得resTestUserRegisterます。content空の文字列であり、変換する整数がAtoiないため、空の文字列から整数への変換は失敗ます。

私は何が起こるのかしか説明できません。あなたが何をしたいのか、質問に答えたくないので、問題を解決するために何をすべきかを言うことはできません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テスト用にRubyロガーの出力をキャプチャする

分類Dev

カルマテストランナー-クロムのキャプチャに失敗します

分類Dev

デスクトップ複製(DirectX)画面キャプチャが画面更新の配信に失敗する

分類Dev

ターミナルにREALTIMEを出力しながら、ログに出力されたテキストをキャプチャする

分類Dev

ターミナルにREALTIMEを出力しながら、ログに出力されたテキストをキャプチャする

分類Dev

リモートsshコマンドの出力のキャプチャに失敗する

分類Dev

Scalaプロセスの失敗をキャッチする

分類Dev

正規表現キャプチャグループが複数のグループのキャプチャに失敗する

分類Dev

VS 2017 が Azure モバイル アプリ スキャフォールディング テーブル コントローラーの作成に失敗する

分類Dev

拒否されたpromiseのキャッチブロックでモカテストに失敗する

分類Dev

12.04キーストーンチャームのデプロイに失敗する:デバッグするにはどうすればよいですか?

分類Dev

Sparkブロードキャストのビッグリストがシリアル化に失敗する

分類Dev

Symfony2:フィクスチャのロード中に機能テストが失敗する

分類Dev

テストでログをキャプチャする

分類Dev

Gradle jarタスクは、「最新のチェック中にタスク 'jar'プロパティ 'archivePath'の出力ファイルのスナップショットをキャプチャできませんでした」で失敗します。

分類Dev

gstreamerでUDPを介してストリーミングすると、画面キャプチャのスケーリングが失敗します

分類Dev

JUnitを使用した例外のテスト。例外がキャッチされてもテストが失敗する

分類Dev

サブタイプのキャストに失敗する

分類Dev

3つ以上の新しい行をキャプチャするための正規表現preg_match_allテストが失敗している

分類Dev

ログファイルにnethogsの出力をキャプチャする

分類Dev

「ANALYZEVERBOSEtablename」の出力をログファイルにキャプチャする方法

分類Dev

Juliaでプロセスの出力をキャプチャする

分類Dev

Googleの音声テキストAPIがマルチプロセッシングPythonで失敗する

分類Dev

ネストされたコマンド置換中にkshが標準エラーのキャプチャに失敗するのはなぜですか?

分類Dev

python pytestがOSErrorで失敗することがある:出力のキャプチャ中にstdinからの読み取り

分類Dev

カールトレース出力をログファイルにキャプチャする方法

分類Dev

Perlスイッチ/ケースが非キャプチャグループ '?'を含むリテラル正規表現文字列で失敗する

分類Dev

キャプチャする前にx509検証が失敗する

分類Dev

OculusRiftのOpenGLスワップテクスチャの作成に失敗する

Related 関連記事

  1. 1

    テスト用にRubyロガーの出力をキャプチャする

  2. 2

    カルマテストランナー-クロムのキャプチャに失敗します

  3. 3

    デスクトップ複製(DirectX)画面キャプチャが画面更新の配信に失敗する

  4. 4

    ターミナルにREALTIMEを出力しながら、ログに出力されたテキストをキャプチャする

  5. 5

    ターミナルにREALTIMEを出力しながら、ログに出力されたテキストをキャプチャする

  6. 6

    リモートsshコマンドの出力のキャプチャに失敗する

  7. 7

    Scalaプロセスの失敗をキャッチする

  8. 8

    正規表現キャプチャグループが複数のグループのキャプチャに失敗する

  9. 9

    VS 2017 が Azure モバイル アプリ スキャフォールディング テーブル コントローラーの作成に失敗する

  10. 10

    拒否されたpromiseのキャッチブロックでモカテストに失敗する

  11. 11

    12.04キーストーンチャームのデプロイに失敗する:デバッグするにはどうすればよいですか?

  12. 12

    Sparkブロードキャストのビッグリストがシリアル化に失敗する

  13. 13

    Symfony2:フィクスチャのロード中に機能テストが失敗する

  14. 14

    テストでログをキャプチャする

  15. 15

    Gradle jarタスクは、「最新のチェック中にタスク 'jar'プロパティ 'archivePath'の出力ファイルのスナップショットをキャプチャできませんでした」で失敗します。

  16. 16

    gstreamerでUDPを介してストリーミングすると、画面キャプチャのスケーリングが失敗します

  17. 17

    JUnitを使用した例外のテスト。例外がキャッチされてもテストが失敗する

  18. 18

    サブタイプのキャストに失敗する

  19. 19

    3つ以上の新しい行をキャプチャするための正規表現preg_match_allテストが失敗している

  20. 20

    ログファイルにnethogsの出力をキャプチャする

  21. 21

    「ANALYZEVERBOSEtablename」の出力をログファイルにキャプチャする方法

  22. 22

    Juliaでプロセスの出力をキャプチャする

  23. 23

    Googleの音声テキストAPIがマルチプロセッシングPythonで失敗する

  24. 24

    ネストされたコマンド置換中にkshが標準エラーのキャプチャに失敗するのはなぜですか?

  25. 25

    python pytestがOSErrorで失敗することがある:出力のキャプチャ中にstdinからの読み取り

  26. 26

    カールトレース出力をログファイルにキャプチャする方法

  27. 27

    Perlスイッチ/ケースが非キャプチャグループ '?'を含むリテラル正規表現文字列で失敗する

  28. 28

    キャプチャする前にx509検証が失敗する

  29. 29

    OculusRiftのOpenGLスワップテクスチャの作成に失敗する

ホットタグ

アーカイブ