問題タブ [mspec]
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.
mspec - MSpec には「グローバルな」クリーンアップ機能がありますか?
MSpec を使用してブラウザー テストを実行していますが、ブラウザーを閉じるのを忘れがちです。このクリーンアップをすべてのコンテキストに適用するのではなく、グローバルに適用できますか?
moq - moq と mspec を使用して、このモックされた依存関係でメソッドが呼び出されたと断言するにはどうすればよいですか?
モデル リポジトリをテストして、メッセージ バスを呼び出すかどうかを確認していました。これが良いテストであるかどうかはわかりませんが、私の考えは次のとおりです。通常はbus.sendをコントローラーに入れます(これはMVC Webアプリです)が、特にコントローラーをテストしたくないのでロジック、これをリポジトリに移動しました。私の場合、コントローラーは単純です。リポジトリは、バスとモデル データベースを使用してビュー モデルを構築します。
とにかく、この問題のポイントは、私が実行している moq テストです。バスをモックして、それがリポジトリから呼び出されていることを確認したかったのです。
テストは次のようになります。
リポジトリの要点は次のとおりです。
IMessageBusAgent は次のように宣言されます。
テストの結果は次のようになります。
» create Clinic コマンドをバスに送信する必要があります (FAIL)
テスト「クリニック作成コマンドをバスに送信する必要があります」が失敗しました: Moq.MockException: モックでの呼び出しが正確に 1 回期待されていましたが、0 回でした: b => b.Send(when_creating_new_clinic.cmd)
0 パス、1 失敗、0 スキップ、3.58 秒かかりました (Machine.Specifications 0.4.24-f7fb6b5)。
Send() コマンドは IDomainCommandSender で宣言されていますが、正しい呼び出しを確認するには、どのようにテストをセットアップする必要がありますか?
ありがとう
c# - MSpecを使用したインターフェイスのすべての実装に対して汎用テストを作成するにはどうすればよいですか?
IAudioProcessor
私は単一のメソッドを持つインターフェースを持っていますIEnumerable<Sample> Process(IEnumerable<Sample> samples)
。インターフェイス自体の要件ではありませんが、すべての実装が次のようないくつかの一般的なルールに従っていることを確認したいと思います。
- 遅延実行を使用する
- 入力サンプルを変更しないでください
これらのテストを作成するのは難しくありませんが、実装ごとにこれらのテストをコピーして貼り付ける必要があります。それは避けたいと思います。
私はこのようなことをしたいと思います(属性GenericTest
とタイプパラメーターに注意してください):
このようなことは可能ですか?
unit-testing - MSpec が ReSharper 6 と統合されないのはなぜですか?
MSpec を ReSharper 6 で動作させるのに問題があります。NuGet パッケージから MSpec をインストールしました。
次に、Visual Studio を終了し、昇格したコマンド プロンプトを開き、packages\tools フォルダーからインストール スクリプトを実行しました。
最後に、Visual Studio をリロードします。サイコロなし!テキスト エディターにアイコンが表示されず、ReSharper オプションにプラグインが表示されません。
私は何を間違っていますか?MSpec のサイトによると、これは機能するはずです :(
c# - このコメントアウトされた MSpec Behavior が ReSharper テストランナーに表示されるのはなぜですか?
MSpec の達人、なぜこれが機能しないのですか?
これを ReSharper で実行すると、仕様は表示されますが実行されません (デバッグもできません):
不思議なことに、コメントアウトされた仕様が ReSharper 出力に表示されます。え?明らかに私は正しいことをしていません。教えてください!
unit-testing - MSpec および ReSharper テスト ランナーは、すべてのテストが失敗したときに仕様を合格として表示します
これはバグですか、それとも予想される動作ですか? MSpec と ReSharper を使用している場合、上のペインでは仕様が明らかに失敗しましたが、下のペインでは合格と表示されます。
tdd - ユニットテストレベルでspecflowを使用する必要がありますか?
重複の可能性:
ユニットテスト用のSpecFlow / BDD?
過去数年間、私はNUnit / Moqを使用してTDDで作業し、過去数か月間、mSpecを使用してBDDを理解するようになりました。
これまでのところ良好ですが、ビジネスアナリストが関与し、開発プロセスの外部にいる受け入れ基準ベースのテストにさらに移行したいと考えています。
これで、Gherkin構文ファイルが事前定義されました。specflowを使用すると、正しい動作方法を感じることができます。
ただし、ユニットテストレベルでは、事前定義されたGherkinファイルがあると、TDDについて私が理解していることに反します。言い換えれば、あなたは行動とともにあなたのデザインを長く進化させながらデザインします。
外部アプローチを使用して作業しているため、ユニットテストレベルでは、ユニットテストを実行するために使用できる仕様/動作が得られた可能性があります(TDDの実行方法に反しているように感じます) )?
以前のこれらのファイルは受け入れテストにとって重要でしたが、開発者として私は一人で作業するので、SpecFlowを使用しない限りこれらのファイルは必要ありません。
また、mspecを使用しているときにGWTファイルを維持する単体テストレベルでどのようなメリットがありますか?開発者は、コードに飛び込んでテストを読むか、テストランナーを実行して何が行われているかを確認できる必要があります。
TIA JD
monodevelop - MSpecをMonoDevelopテストランナーと統合できますか?
MSpecをMonoDevelopテストランナーと統合できますか?Sharp-Developで動作しています。グーグルは「何もない」と言っているので、現在のリリース(2.8.2)では不可能だと思います。
c# - 意図を伝えるために、xSpecification/BDD テスト クラスにどのように名前を付けますか? 特にソリューション エクスプローラーで
私は最近、xSpecification テストを実装するために MSpec を使用するとともに、BDD 設計に従うことを強く採用しました。これは、ソリューション エクスプローラー内で意図を区別するのが難しくなる、かなり非常識なクラス名につながっています。たとえば、次のとおりです。
私の最初の考えのいくつかは、おそらくソリューションフォルダーを使用して、次のようなことをすることでした
Given_I_am_logged_in \ When_I_view_my_some_company_super_things.cs
これにより、さらにドリルダウンできる可能性があります
Given_I_am_logged_in \ And_things_are_good \ When_I_view_my_some_company_super_things.cs Given_I_am_logged_in \ And_things_are_bad \ When_I_view_my_some_company_super_things.cs
似たようなことをして成功した人はいますか、それとも xSpecification テストの命名で成功したものは何ですか?