[解決済み] Go の testing パッケージを使用してテストのセットアップを行うにはどうすればよいですか?
質問
を使用する際、全てのテストの舞台となる全体的なテスト設定処理を行うにはどうしたらよいでしょうか。 テストパッケージ ?
Nunit の例としては
[SetUp]
属性があります。
[TestFixture]
public class SuccessTests
{
[SetUp] public void Init()
{ /* Load test data */ }
}
どのように解決するのですか?
Go 1.4 からは setup/teardown を実装することができます (テストの前後に関数をコピーする必要がありません)。ドキュメントの概要は以下のとおりです。 ここで の中にあります。 メイン セクションの
TestMainはメインゴルーチンの中で実行され、m.Runの呼び出しの周りで必要なセットアップとティーダウンを行うことができます。 m.Run.TestMainの呼び出しの前後で、必要なセットアップとティアダウンができます。そして、m.Runの結果を用いて os.Exitをm.Runの結果と共に呼び出す必要があります。
これが、もしテストが関数
func TestMain(m *testing.M)
を含む場合、テストを実行する代わりにこの関数が呼び出されることを意味します。そして、この関数の中で、テストがどのように実行されるかを定義することができます。例えば、私はグローバルセットアップとティアダウンを実装することができます。
func TestMain(m *testing.M) { setup() code := m.Run() shutdown() os.Exit(code) }
他の例 はここで見つけることができます .
<ブロッククオート最新のリリースでGoのテストフレームワークに追加されたTestMain機能は、いくつかのテストのユースケースに対するシンプルなソリューションです。 は、いくつかのテストのユースケースに対するシンプルなソリューションです。TestMain は、セットアップとシャットダウンを行うためのグローバルフックを提供し、テスト環境を制御します。 テスト環境の制御、子プロセスでの異なるコードの実行、またはテスト コードから漏れたリソースのチェックなどです。 テストコードから漏れたリソースをチェックします。ほとんどのパッケージでは ほとんどのパッケージは TestMain を必要としませんが、 必要になったときのためには歓迎すべき追加機能です。 しかし、必要な時のための歓迎すべき追加機能です。
関連
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] フェイク、モッキング、スタビングの違いとは?
-
[解決済み] ユニットテストとインテグレーションテストの違いは何ですか?[重複あり]
-
[解決済み] NUnit vs. MbUnit vs. MSTest vs. xUnit.net [終了しました。]
-
[解決済み] データベース駆動型アプリケーションのユニットテストに最適な戦略とは?
-
[解決済み】コマンドラインからunittest.TestCaseのテストを1つ実行する
-
[解決済み】ユニットテスト初心者、優れたテストを書くには?[クローズド]
-
[解決済み] いつモックすればいい?
-
[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]
-
[解決済み] Go言語でのテストに適したパッケージの命名法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Assert.Fail()はバッドプラクティスとみなされるか?
-
[解決済み] Gradleを使用して1つのユニットテストクラスのみを実行する方法
-
[解決済み] プライベートメソッドをテストすべきか、パブリックメソッドのみをテストすべきか?[クローズド]
-
[解決済み] モックオブジェクトは何のためにあるのか?
-
[解決済み] Goのモック関数
-
[解決済み] Visual Studio 2015または2017でユニットテストが検出されない
-
[解決済み] 既存のプロダクションプロジェクトにユニットテストをうまく追加することができますか?もしそうなら、どのように、そして、それは価値があるのでしょうか?
-
[解決済み] スタブとは?
-
[解決済み] RSpec vs Cucumber (RSpecの話) [終了しました。]
-
[解決済み] Enzyme - How to access and set <input> value?