問題タブ [arrange-act-assert]

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.

0 投票する
1 に答える
143 参照

c# - Given-When-Then ユーザー入力を処理する場合

開発プロセスで Give-When-Then として実装している Arrange/Act/Assert に関する説明を探しています。私はコンセプトに固執しようとしていますが、特定のイベント (特にユーザー入力) の間、単体テストで適切にキャプチャするために、「Act」アクションを「Arrange」アクションとして再検討する必要があることがわかりました。 . ここでは、モッキング フレームワークとしてMoqを使用しています。

例: 私のプロジェクトでは、コードの焦点はユーザーが提供する画像です。ユーザーが画像を選択できる機能がありますが、画像が既に存在する場合は、アクティブな画像を置き換えるか、アクションをキャンセルしてアクティブな画像を保持するかをユーザーに問い合わせます。この特定のシナリオを記述する適切な方法は次のようになると思います。

画像が既に存在するワークスペースが与えられた
場合ユーザーが新しい画像を要求し
ユーザーがアクティブな画像を置き換えることを選択した場合
プログラムは画像を置き換える必要があります

テスト的には、次のようになります。

コード的には、私のプレゼンターでは、次のようになります。

Setupただし、ビューRaiseが呼び出された後にメッセージ ボックスが発生するため、これは失敗します。Setupそのため、その前にを移動する必要があります (そして、 を使用Setupすると、「アレンジ」セットアップのように感じられます):

画像が既に存在するワークスペースが与えられ
ユーザーがアクティブな画像を置き換えることを選択した
場合ユーザーが新しい画像を要求した場合プログラムは画像を置き換える必要があり
ます

しかし今、私のシナリオは順不同で、正しく流れていないように感じます。画像を置き換えるというユーザーの選択 ( ) は、ユーザーが新しい画像を追加するという選択 ( ) のSetupに発生するため、Act ステップの一部であるべきだと思いますが、適切にモックするためには、アレンジステップに入れます。Raise

ここで間違ったモッキングフレームワークを使用していますか? これを行うより良い方法はありますか?または、Given-When-Then セットアップでユーザー入力ステップをどこに配置するかについて非現実的に心配していますか?

前もって感謝します。

0 投票する
5 に答える
3864 参照

c# - 例外が予想されるときに Arrange-Act-Assert パターンを適用するための最良のアプローチ

単体テストを作成するときに、Arrange-Act-Assert パターンに従おうとしていますが、どちらのアプローチが良いか混乱するところまで来ました。私は xUnit を使用していますが、問題に対する最初のアプローチは次のとおりです。

私の2番目のアプローチは次のとおりです。

どちらがより良いアプローチですか?

編集: wp.me/p4f69l-3z でこれについてブログを書いた

0 投票する
2 に答える
2285 参照

c# - Arrange-Act-Assert で単体テストを行う場合、見出しのコメントは推奨されますか?

AAA パターンで提案されているように、単体テストのステートメントを分割するという概念が役立つと思います。

テストが次のようになるように、見出しコメントを追加する傾向があります。

しかし、私は興味があります.これらのヘッダーコメントを常に含めるのは普通ですか?

...またはこれは私が避けるべきものですか?

0 投票する
1 に答える
195 参照

c# - AAA - 単体テスト ファイル IO - ロギング

プログラム用のカスタム ロガーを作成しています。可能な限りNLogを使用しています。私は機能を検証しようとしており、AAA パターンを使用していくつかの単体テストを作成しました。

ただし、これはアサートで問題を引き起こします....ファイル書き込みをアサートするための最良の方法はどうすればよいですか...そして正しく書き出されました。

つまり、file.read を実行して最後の行を取得し、それが書き出された param と等しいと断言できます...それが AAA の目的に反するかどうかはわかりません....

0 投票する
3 に答える
140 参照

c# - 単体テストを学んでいますが、この単体テスト プログラム フローは正しいのでしょうか? アレンジ、アクト、アサートのように

単体テストを学んでいますが、この単体テスト プログラム フロー (Arrange、Act、Assert など) は正しいのでしょうか?

0 投票する
1 に答える
1082 参照

unit-testing - Arrange、Act、Assert パターンの Arrange と Act の違いは何ですか?

単体テストのパターンのアレンジ部分とアクト部分の違いがよくわかりません。アレンジはオブジェクトの作成のみを意味しますか? そもそもアレンジをアクト部分から分離する必要があるのはなぜですか? 何かがアレンジ部分ではなくアクトに属するかどうかを判断する基準は何ですか? 私には、アサーションの「テストをアレンジ」しているので、すべてがアレンジ部分に属しているように見えますね。