現在、私たちのテストは、不器用な4フェーズテストスタイルに従って、テスト本体を記述しています。 xUnitでうまく機能しない古い学校のもののように見えるので、私はそれがまったく好きではありません。 私の懸念:
// Teardown
フェーズは、 restore
を必要とせずに、テストごとにsut
作成するため、xUnitテストでは常に空です。// Fixture setup
、 // Exercise System
、および// Verify Outcome
は冗長すぎるように見えますが、 // arrange
、 // act
、および// assert
はより簡潔です。 テンプレートからテストを作成しない場合は、それらの単語を書く方がはるかに簡単です(タイプミスなしでexercise
を書くのは常に困難です😅)。したがって、 @ moodmosaicに強い異議がない場合は(そうでないことを願っています)、3フェーズテストに切り替えて、すべてのテストで使用したいと思います。 痛みではなく、テストの作成中に満足感を感じることができます😖
頑張れ。 しかし、私は最初の文字の大文字、つまり
// Arrange
// Act
// Assert
それ以外の
// arrange
// act
// assert
2番目のケースを好む強い理由がありますか?
いいえ、大文字で問題ありません。AAA:blush:を使用するだけで十分です。
また、各フェーズを空白行で区切ることもできます。これは、現在私が使用しているフォーマットです。 次に、テストリーダーは、 Given / When / Then 、 Arrange / Act / Assert 、または(4フェーズのものがここにあります)と想定できます。
これについて詳しくは、 「3行を超えるコードを使用した簡単なテスト」のセクションください。
私はOSSでのコメントの代わりに空の行を使用することを強く嫌い、そのMarksの考えに同意しません。 ここで私のコメントを参照して
そしてこの特定のケースでは、彼らは謝罪です
まあ、私もこのルールを頻繁に参照しますが、この特定のケースでは、それらを「謝罪」し続けることを好みます😄それらはテストの構造をより明白で厳密にします。 個人的には「ラベル付き」テストの方が読みやすいと思いますが、おそらくそれは単に習慣の問題です😉
しかし、おそらくそれは単に習慣の問題です
この; そしておそらく、誰が実際にテストを書いたかという問題でもあります。
こんにちは、これに取り組みたいと思います。 私は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#の熱心な経験があるので、どんな助けもいただければ幸いです
@micheleissa最新バージョンのVS(15.5.1以降)を使用していることを確認してください。使用しないと、プロジェクトが開きません(MSがF#SDKに変更を適用しました)。 また、閉じたVSでルートにあるgit clean -fdx .
を実行するようにしてください。 これは、以前にプロジェクトをチェックアウトした場合に備えて、一時ファイルをクリーンアップするためです。
これらの両方の手順が役立つはずです。 彼らがしなかったかどうか私に知らせてください😉
@zvirja VS 2017 15.5.2の最新バージョンにアップグレードしましたが、同じ問題に直面しています😞
第二部を試しましたか?
master
チェックアウトgit clean -fdx .
を実行します以前のSDKの残り物があるようです。
また、F#ツールがマシンにインストールされていることを確認してください。
ええ、私は申し訳ありませんが2番目のものを忘れました:)
今からやってみます
うまくいった@zvirja 、助けてくれてありがとう!
もう1つの質問ですが、フォークされたリポジトリで作業しているブランチをこのチケットに関連付けるにはどうすればよいですか?
はい、わかった。 ありがとうございました! 問題に取り組んでいる間にプルリクエストを作成します。これにより、進行状況を監視し、投稿ガイドラインに記載されている内容に従ってフィードバックを提供できます。
最も参考になるコメント
通常、私は
// Act & Assert
を使用します。これは、より簡潔でクールに見えるためです😎 @ moodmosaicに懸念がない限り、そのスタイルに従うことをお勧めします😉