Autofixture: 提案:テストには「アレンジアクトアサート」スタイルに従ってください

作成日 2017年11月18日  ·  22コメント  ·  ソース: AutoFixture/AutoFixture

現在、私たちのテストは、不器用な4フェーズテストスタイルに従って、テスト本体を記述しています。 xUnitでうまく機能しない古い学校のもののように見えるので、私はそれがまったく好きではありません。 私の懸念:

  • // Teardownフェーズは、 restoreを必要とせずに、テストごとにsut作成するため、xUnitテストでは常に空です。
  • // Fixture setup// Exercise System 、および// Verify Outcomeは冗長すぎるように見えますが、 // arrange// act 、および// assertはより簡潔です。 テンプレートからテストを作成しない場合は、それらの単語を書く方がはるかに簡単です(タイプミスなしでexerciseを書くのは常に困難です😅)。

したがって、 @ moodmosaicに強い異議がない場合は(そうでないことを願っています)、3フェーズテストに切り替えて、すべてのテストで使用したいと思います。 痛みではなく、テストの作成中に満足感を感じることができます😖

enhancement good first issue

最も参考になるコメント

通常、私は// Act & Assertを使用します。これは、より簡潔でクールに見えるためです😎 @ moodmosaicに懸念がない限り、そのスタイルに従うことをお勧めします😉

全てのコメント22件

頑張れ。 しかし、私は最初の文字の大文字、つまり

// Arrange
// Act
// Assert

それ以外の

// arrange
// act
// assert

2番目のケースを好む強い理由がありますか?

いいえ、大文字で問題ありません。AAA:blush:を使用するだけで十分です。

また、各フェーズを空白行で区切ることもできます。これは、現在私が使用しているフォーマットです。 次に、テストリーダーは、 Given / When / ThenArrange / Act / Assert 、または(4フェーズのものがここにあります)と想定できます。

これについて詳しくは、 「3行を超えるコードを使用した簡単なテスト」のセクションください

私はOSSでのコメントの代わりに空の行を使用することを強く嫌い、そのMarksの考えに同意しません。 ここで私のコメントを参照して

各テストフェーズの上部にあるコメントは、基本的にコメントです。 そして、この特定のケースでは、彼らは謝罪-彼らはどのように説明しているため、代わりにその理由


ここで、AutoFixtureに戻ります。すべてのテストはコメントで装飾されており、フィクスチャの分解フェーズはほとんどの場合空であるため、先に進んでAAAに変更できます。

そしてこの特定のケースでは、彼らは謝罪です

まあ、私もこのルールを頻繁に参照しますが、この特定のケースでは、それらを「謝罪」し続けることを好みます😄それらはテストの構造をより明白で厳密にします。 個人的には「ラベル付き」テストの方が読みやすいと思いますが、おそらくそれは単に習慣の問題です😉

しかし、おそらくそれは単に習慣の問題です

この; そしておそらく、誰が実際にテストを書いたかという問題でもあります。

こんにちは、これに取り組みたいと思います。 私はAutofixtureの大ファンであり、仕事で常に使用しています。これは、恩返しの良い方法です。
したがって、基本的に、すべてのテストファイルで以下を変更する必要があります。
// Fixture setupから// Arrange
// Exercise Systemから// Act
// Verify Outcomeから// Assert
そして最後に// Teardownをゼロにします。

はい。ただし、一部のテストでは一部のフェーズが結合されているため、「検索と置換」を実行しても機能しない場合があることに注意してください。 つまり、エクササイズシステムに出くわし、検証する可能性があります。

@moodmosaic私は理解していますが、完全な「検索と置換」ではなくファイル

ありがとうございました、
エイサ

@moodmosaic for // Exercise system and verify outcomeこれは次のように置き換える必要があります
// Act and Assert
それとも何か違うことを考えているのですか?

通常、私は// Act & Assertを使用します。これは、より簡潔でクールに見えるためです😎 @ moodmosaicに懸念がない限り、そのスタイルに従うことをお勧めします😉

どちらの方法でもOKです:neckbeard:

だから私はこれから始めようとしています、そして私がVS 2017でAll.slnをロードした後2つのF#プロジェクト
(AutoFoq、AutoFoqUnitTest)を開くことができません。 私はF#の熱心な経験があるので、どんな助けもいただければ幸いです
screenshot_121417_042805_pm

@micheleissa最新バージョンのVS(15.5.1以降)を使用していることを確認してください。使用しないと、プロジェクトが開きません(MSがF#SDKに変更を適用しました)。 また、閉じたVSでルートにあるgit clean -fdx .を実行するようにしてください。 これは、以前にプロジェクトをチェックアウトした場合に備えて、一時ファイルをクリーンアップするためです。

これらの両方の手順が役立つはずです。 彼らがしなかったかどうか私に知らせてください😉

screenshot_121517_111531_am
@zvirja VS 2017 15.5.2の最新バージョンにアップグレードしましたが、同じ問題に直面しています😞

第二部を試しましたか?

  • VSを閉じる
  • 最新のmasterチェックアウト
  • ルートに移動してgit clean -fdx .を実行します
  • VSをもう一度開きますか?

以前のSDKの残り物があるようです。

また、F#ツールがマシンにインストールされていることを確認してください。
image

ええ、私は申し訳ありませんが2番目のものを忘れました:)
今からやってみます

うまくいった@zvirja 、助けてくれてありがとう!

もう1つの質問ですが、フォークされたリポジトリで作業しているブランチをこのチケットに関連付けるにはどうすればよいですか?

それがうまくいったことは素晴らしいです! 👍

フォークされたリポジトリで作業しているブランチをこのチケットに関連付けるにはどうすればよいですか?

この記事をご覧になることをお勧めします。ワークフローはそこで詳しく説明されています:

基本的に、ブランチをこの問題に関連付ける必要はありません。 むしろ、プルリクエストを作成し、本文でこの問題について言及するだけです(たとえば、これを参照してください)。

はい、わかった。 ありがとうございました! 問題に取り組んでいる間にプルリクエストを作成します。これにより、進行状況を監視し、投稿ガイドラインに記載されている内容に従ってフィードバックを提供できます。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

zvirja picture zvirja  ·  3コメント

josh-degraw picture josh-degraw  ·  4コメント

zvirja picture zvirja  ·  4コメント

Ephasme picture Ephasme  ·  3コメント

tiesmaster picture tiesmaster  ·  7コメント