目次
Go Test でテスト ケースの謎を探る
テスト ケースの基本構文
サブテストを使用すると、大規模なテスト ケースを、より小さく管理しやすい部分に分割できます。
表形式テストでは、表形式のデータを使用して一連のテスト ケースを実行できます。
次に、
ホームページ バックエンド開発 Golang go test を使用してテストケースの謎を探る

go test を使用してテストケースの謎を探る

Apr 07, 2024 pm 02:21 PM
キーワード テストケース

Go の go test コマンドは、以下を含む柔軟なテスト ケース メカニズムを提供します: 命名規則: Test<関数名>、パラメーターは *testing.T アサーション: 期待値と実際の値が一致しているかどうかを検証します。 t.Equal() および t.Error() サブテスト: 大きなテスト ケースを小さな部分に分割し、t.Run() を使用してテーブル テストを作成します: 表形式のデータでテスト ケースを実行し、t.RunTable() を使用して実用的なケースを作成します。 go test を使用したデモ Web サービスのテスト

利用 go test 探索测试用例的奥秘

Go Test でテスト ケースの謎を探る

Go では、go test を使用したテスト コマンドはコードの正確さと信頼性を保証します。そのパワーは、柔軟で拡張可能なテスト ケース メカニズムから得られます。

テスト ケースの基本構文

テスト ケース関数の命名規則は、Test の形式に従います。各テスト ケース関数には、テスト ステータスやその他の情報を報告する #**testing.T 型パラメーターが必要です。

import "testing"

func TestAdd(t *testing.T) {
    // ... 测试代码
}
ログイン後にコピー

Assertion

Assertion は、期待値と実際の値が一致しているかどうかを検証するために使用される関数です。 Go のテスト パッケージには、次のようないくつかのアサーション関数が用意されています。

  • t.Equal(a, b): a が b
  • と等しいことを確認します。 t .NotEqual(a, b): a が b
  • と等しくないことを確認します。t.True(x): x が true であることを確認します
  • t.False (x): x が false であることを確認します
  • t.Error(err): err が nil ではないことを確認します
  • #Subtest

サブテストを使用すると、大規模なテスト ケースを、より小さく管理しやすい部分に分割できます。

t.Run()

関数を使用してサブテストを作成し、サブテスト名とテスト関数を渡します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>func TestMath(t *testing.T) { t.Run(&quot;add&quot;, func(t *testing.T) { // 测试加法的子测试 }) t.Run(&quot;subtract&quot;, func(t *testing.T) { // 测试减法的子测试 }) }</pre><div class="contentsignin">ログイン後にコピー</div></div>表形式テスト

表形式テストでは、表形式のデータを使用して一連のテスト ケースを実行できます。

t.RunTable()

関数を使用してテーブル テストを作成し、テーブル データとテスト関数を渡します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>func TestTable(t *testing.T) { type Input struct { a, b int } tests := []Input{ {1, 2}, {3, 4}, {5, 6}, } t.RunTable(&quot;add&quot;, func(t *testing.T, in Input) { // 测试 add 函数,使用 in.a 和 in.b }, tests) }</pre><div class="contentsignin">ログイン後にコピー</div></div>実践的なケース: Web サービスのテスト

次に、

go test

を使用して Web サービスをテストする例を示します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import ( &quot;net/http&quot; &quot;net/http/httptest&quot; &quot;testing&quot; ) func TestGetProducts(t *testing.T) { // 创建一个模拟 HTTP 请求 req, err := http.NewRequest(&quot;GET&quot;, &quot;/api/products&quot;, nil) if err != nil { t.Fatal(err) } // 创建一个响应记录器 rr := httptest.NewRecorder() // 调用正在测试的处理程序 http.HandlerFunc(&quot;/api/products&quot;, getProducts).ServeHTTP(rr, req) // 验证响应的状态码 if status := rr.Code; status != http.StatusOK { t.Errorf(&quot;错误的状态码:%d&quot;, status) } // 验证响应 body expected := `{&quot;products&quot;: [{&quot;id&quot;: 1, &quot;name&quot;: &quot;Product 1&quot;}, {&quot;id&quot;: 2, &quot;name&quot;: &quot;Product 2&quot;}]}` if body := rr.Body.String(); body != expected { t.Errorf(&quot;错误的响应 body:%s&quot;, body) } }</pre><div class="contentsignin">ログイン後にコピー</div></div>結論</p> <h3></h3>go test<p> は、さまざまなテスト ケースを作成および管理できる強力なツールです。アサーション、サブテスト、テーブル テストの機能を最大限に活用して、包括的で信頼性の高いテストを作成し、コードの品質と信頼性を向上させることができます。 <code>

以上がgo test を使用してテストケースの謎を探るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Explorer.exe プロセスとは何かを説明する Explorer.exe プロセスとは何かを説明する Feb 18, 2024 pm 12:11 PM

Explorer.exe とは何のプロセスですか? Windows オペレーティング システムを使用しているときに、「explorer.exe」という用語をよく聞きますが、このプロセスが何であるか知りたいですか?この記事では、プロセスexplorer.exeとは何か、その機能と効果について詳しく説明します。まず、explorer.exe は Windows オペレーティング システムの重要なプロセスであり、Windows エクスプローラー (ウィンドウ) の管理と制御を担当します。

Xiaomi Mi 14 Ultraで絞りを調整するにはどうすればよいですか? Xiaomi Mi 14 Ultraで絞りを調整するにはどうすればよいですか? Mar 19, 2024 am 09:01 AM

絞りサイズの調整は写真の効果に重大な影響を与えますが、Xiaomi Mi 14 Ultra はカメラの絞り調整にこれまでにない柔軟性を提供します。誰もがスムーズに絞りを調整し、絞りサイズの自由な調整を実現できるように、ここのエディターはXiaomi Mi 14Ultraで絞りを設定する方法に関する詳細なチュートリアルを提供します。 Xiaomi Mi 14Ultraで絞りを調整するにはどうすればよいですか?カメラを起動し、「プロフェッショナルモード」に切り替え、メインカメラ-Wレンズを選択します。絞りをクリックし、絞りダイヤルを開きます。A は自動です。必要に応じて f/1.9 または f/4.0 を選択します。

r5 5600x が駆動できる最高のグラフィックス カードは何ですか? RX6800XT で 5600X を使用した最新のパフォーマンス r5 5600x が駆動できる最高のグラフィックス カードは何ですか? RX6800XT で 5600X を使用した最新のパフォーマンス Feb 25, 2024 am 10:34 AM

10 月 29 日、AMD はついに待望の大ヒット製品、新しい RDNA2 アーキテクチャをベースにしたゲーム グラフィックス カード RX6000 シリーズをリリースしました。このグラフィックス カードは、新しい ZEN3 アーキテクチャに基づいて以前に発売された Ryzen 5000 シリーズ プロセッサを補完し、新しいダブル A の組み合わせを形成します。このリリースは、競合他社の「Shuangying」を追い抜いただけでなく、DIY ハードウェア サークル全体に大きな影響を与えました。次に、私の手元にある AMD Ryzen 5600X と RX6800XT の組み合わせをテスト例として使用して、現在の AMD がどれほど優れているかを確認してみましょう。まずCPUプロセッサ部分について説明すると、ZEN2アーキテクチャを採用した前世代のAMD Ryzen 3000シリーズプロセッサが実際に使用されています。

Cheat Engineで中国語を設定する方法? ce修飾子で中国語を設定する方法 Cheat Engineで中国語を設定する方法? ce修飾子で中国語を設定する方法 Mar 18, 2024 pm 01:20 PM

Ce Modifier (CheatEngine) は、ゲーム メモリの変更と編集に特化したゲーム変更ツールです。それでは、CheatEngine で中国語を設定する方法を教えてください。次に、エディターが Ce Modifier で中国語を設定する方法を説明します。困っている友達を助けることができることを願っています。新しいソフトウェアをダウンロードすると、インターフェイスが中国語ではないことに気づくと混乱することがあります。このソフトウェアは中国で開発されたものではありませんが、中国版に変換する方法はあります。この問題は中国語パッチを適用するだけで解決できます。 CheatEngine (ce モディファイア) ソフトウェアをダウンロードしてインストールした後、以下の図に示すように、インストール場所を開き、langages という名前のフォルダーを見つけます。

パフォーマンス、メモリ周波数、またはタイミングに大きな影響を与えるのはどれですか? パフォーマンス、メモリ周波数、またはタイミングに大きな影響を与えるのはどれですか? Feb 19, 2024 am 08:58 AM

メモリはコンピュータの最も重要なコンポーネントの 1 つであり、コンピュータのパフォーマンスと安定性に大きな影響を与えます。メモリを選択するとき、人は 2 つの重要なパラメータ、つまりタイミングと周波数に注目する傾向があります。では、メモリのパフォーマンスに関しては、タイミングと頻度のどちらがより重要でしょうか?まず、タイミングと頻度の概念を理解しましょう。タイミングとは、メモリ チップがデータを受信して​​処理するのに必要な時間間隔を指します。通常はCL値(CASLatency)で表され、CL値が小さいほどメモリの処理速度が速くなります。周波数は範囲内です

0x0000004e エラーは何を意味しますか? 0x0000004e エラーは何を意味しますか? Feb 18, 2024 pm 01:54 PM

0x0000004e 障害とは何ですか? 障害は、コンピューター システムにおける一般的な問題です。コンピュータに障害が発生すると、通常、システムは正常に実行できなくなり、シャットダウン、クラッシュ、またはエラー メッセージが表示されます。 Windows システムには、システムに重大なエラーが発生したことを示すブルー スクリーン エラー コードである、特定の障害コード 0x0000004e があります。 0x0000004e ブルー スクリーン エラーは、システム カーネルまたはドライバーの問題が原因で発生します。このエラーは通常、コンピュータ システムに次のようなエラーを引き起こします。

DaVinci Resolve Studio が AMD グラフィックス カードの AV1 ハードウェア エンコーディングをサポートするようになりました DaVinci Resolve Studio が AMD グラフィックス カードの AV1 ハードウェア エンコーディングをサポートするようになりました Mar 06, 2024 pm 10:04 PM

最近のニュースでは、lackMagic が DaVinci Resolve Studio ビデオ編集ソフトウェアの 18.5PublicBeta2 パブリック ベータ アップデートを開始し、AMD Radeon グラフィックス カードに AV1 エンコードのサポートをもたらしました。最新バージョンにアップデートすると、AMD グラフィックス カード ユーザーは、DaVinci Resolve Studio で AV1 エンコード用のハードウェア アクセラレーションを利用できるようになります。公式ではサポートされているアーキテクチャやモデルは明記されていませんが、すべての AMD グラフィックス カード ユーザーがこの機能を試すことができると予想されます。 2018 年、AOMedia は新しいビデオ コーディング標準 AV1 (AOMediaVideoCodec1.0) をリリースしました。 AV1 は多数の企業によって生産されています。

Honor 90 GT で Honor MagicOS 8.0 をアップデートするにはどうすればよいですか? Honor 90 GT で Honor MagicOS 8.0 をアップデートするにはどうすればよいですか? Mar 18, 2024 pm 06:46 PM

Honor 90GT は、優れたパフォーマンスと優れたユーザー エクスペリエンスを備えたコスト効率の高いスマートフォンです。ただし、場合によっては、Honor 90GT で Honor MagicOS8.0 をアップデートする方法など、いくつかの問題が発生することがあります。この手順は携帯電話やモデルによって異なる場合があるため、システムを正しくアップグレードする方法について説明します。 Honor 90GT で Honor MagicOS 8.0 をアップデートするにはどうすればよいですか? 2 月 28 日のニュースによると、Honor は本日、3 つの携帯電話 90GT/100/100Pro 向けに MagicOS8.0 パブリック ベータ アップデートをプッシュしました。パッケージのバージョン番号は 8.0.0.106 (C00E106R3P1) 1 です。 90GT のバッテリーは完全に充電されています。

See all articles