ホームページ  >  記事  >  バックエンド開発  >  非テスト関数から「assert」関数を呼び出すにはどうすればよいですか?

非テスト関数から「assert」関数を呼び出すにはどうすればよいですか?

WBOY
WBOY転載
2024-02-10 10:30:10491ブラウズ

非テスト関数から「assert」関数を呼び出すにはどうすればよいですか?

php editor Strawberry では、非テスト関数から「assert」関数を呼び出す方法に関する記事をお届けします。 PHP では通常、テスト ケースを作成するために「assert」関数を使用しますが、テスト以外の関数でもこの関数を使用したい場合があります。この記事では、読者がこの関数をよりよく理解して使用できるように、テスト関数以外で「assert」関数を呼び出す手順と注意事項を詳しく紹介します。初心者でも経験豊富な開発者でも、この記事から貴重な知識とヒントを得ることができます。一緒に探検しましょう!

質問の内容

この質問は Go の非テスト関数のアサーションに似ていますが、非テスト関数から assert.ElementsMatch を呼び出したいと考えています。

testing.T オブジェクトをインスタンス化するにはどうすればよいですか?

この関数は最終的にはフラグで設定された main から呼び出されるため、単なるテストにはなりません。

コンテキスト: ソース データベースからターゲット データベースへのデータ移行を実行しています。移行の最初の部分は、ソースからターゲットの保存テーブルにデータをコピーすることです。 2 番目の部分 (ここで assert.ElementsMatch が登場します) は、保存されたテーブルが汎用テーブルとどのように異なるかを確認することです。データ移行に関する予期せぬ状況 (例:特定の日付は異なるか間違っている可能性があります) ID 番号がコピーされました)。 3 番目の部分では、保存テーブル データを確認したら、それを汎用テーブルにコピーします。これはすべて少し複雑すぎるように思えますが、おそらく現在ソース データベースとターゲット ユニバーサル データベースを使用しているためです。

回避策

testing.Tのインスタンスは必要ありません。

assert.ElementsMatch 関数は、単一メソッドのインターフェイスである assert.TestingT を引数として受け取ります。したがって、メソッドを使用して好きなことを実行できるインターフェイスのカスタム実装を定義し、そのカスタム実装のインスタンスを assert.ElementsMatch に渡すだけです。

###例えば:### リーリー

以上が非テスト関数から「assert」関数を呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。