問題タブ [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.
visual-studio - MSpec Behaves_like フィールドが使用されていないという Visual Studio の警告を抑制または修正するにはどうすればよいですか?
Behaviors
およびBehaves_like
フィールドを使用して慣用的な MSpec 仕様を作成しています
Visual Studio にビルドの警告が表示される
私はすでに MSpec の ReSharper コード注釈に精通しており、MSpec のサブジェクトとフィールドの命名規則を持っています。未使用のフィールドに対するこの警告を制御する方法がわかりません。通常の状況では実際に役立つため、プロジェクトレベルで警告を抑制することは避けたいと思います。
bdd - この MSpec テストは改善できますか?
BDD と MSpec の初心者である私は、BDD 全般、特に MSpec に関連するベスト プラクティスと良い習慣について、まだ確信が持てません。
次の例を改善できますか? ベストプラクティスと良い習慣に従っていますか?
- 仕様クラスと動作の命名は問題ありませんか?
- このシナリオで動作を使用する必要がありますか、それとも仕様クラスに共通の基本クラスを使用する必要がありますか?
- ここがなくても大丈夫
Establish
ですか? - テスト データを取得するためにスタティック ファクトリ メソッド (
TestData
メソッド) を使用する必要がありますか?それとも仕様自体でデータを作成する必要がありますか? - 使用できる動作の各プロパティをテストする代わりに、
result.Equals()
2 つのことをテストすることになりますが、これは良くありません。
この例を、より良いと思われるものに自由にリファクタリングしてください。
c# - MSpecを使用して固定長フラットファイルパーサーを効果的にテストするにはどうすればよいですか?
私はこのメソッドシグネチャを持っています:List<ITMData> Parse(string[] lines)
ITMData
35のプロパティがあります。
このようなパーサーをどのように効果的にテストしますか?
質問:
- ファイル全体をロードする必要がありますか(System.IOを使用できますか)?
- ファイルの行を文字列定数に入れる必要がありますか?
- 1つ以上の行をテストする必要があります
- ITMDataの各プロパティをテストする必要がありますか、それともオブジェクト全体をテストする必要がありますか?
- テストの名前はどうですか?
編集
メソッドシグネチャをに変更しました ITMData Parse(string line)
。
テストコード:
編集2
クラスごとに1つのプロパティのみをテストする必要があるかどうかはまだわかりません。私の意見では、これにより、仕様に関するより多くの情報を提供できます。つまり、インデックス59からインデックス79までの1行を解析すると、fldNameが取得されます。1つのクラス内のすべてのプロパティをテストすると、この情報が失われます。テストを過剰に指定していますか?
私のテストは次のようになります。
unit-testing - 単体テスト用のプライベート コンストラクターを持つ型のインスタンスを作成するにはどうすればよいですか?
の SerialDataReceived イベントに応答するイベント ハンドラーを単体テストする必要がありSystem.IO.Ports.SerialPort
ます。このイベント ハンドラーには署名があります。
したがって、単体テストがメソッドを呼び出すときは、SerialDataReceivedEventArgs
インスタンスが必要です。しかし、そのオブジェクトにはプライベート コンストラクターがあります。SerialDataReceivedEventArgs
では、メソッドに渡すにはどうすればよいでしょうか。
私はここで明らかなテクニックを見逃しているに違いないと確信しています.長い一日を過ごしました.何かアドバイスをお願いします.
tdd - MSpec の [Subject()] 属性には何を入力すればよいですか?
私は MSpec をしばらく使用していますが、とても気に入っています。ReSharper に自分の仕様を認識させるには、SubjectAttribute
.
私は疑問に思っていますが、[Subject()]
属性に入れるのに最適なものは何ですか?
BDD を行っている場合、テスト対象の型がわからないため、[Subject(typeof(thingy))]
時期尚早に思えます。コードが書かれたら、後で追加することができます。
これで、テキスト バージョンが残ります[Subject("some text")]
。しかし、そこに置くのに最適なものは何ですか?
私が何をしても、ReSharper で得られる出力には影響しないようです。これはある程度個人的な好みによるものだと思いますが、ここに何らかの慣習があるのだろうか?
c# - メソッドが 1 回だけ呼び出されることをアサートするにはどうすればよいですか?
編集されたソリューション:
c# - MSpecを使用してASP.NETMVCアクションによって設定されたHTTPステータスコードをテストする方法
私は次のコントローラーを持っています:
MSpec仕様を作成しました:
しかし、コントローラーをインスタンス化する方法が原因で、HttpContextはnullになります。PageNotFound
アクションによって設定されたステータスコードをテストするための最良の方法は何でしょうか?
編集:以下に回答を投稿しました
unit-testing - MSpec はテストの実行後に TRX 結果ファイルを生成しますか?
MSpec はテストの実行後にTRX 結果ファイルを生成しますか? そうでない場合は、できますか?テストは ReSharper で実行されています。
unit-testing - MSpec を使用して .net マイクロ フレームワーク プロジェクトをテストすることはできますか?
MSpec または別の BDD/TDD フレームワークを使用して、.net マイクロ フレームワークを対象としたコードをテストできるようにしたいと考えています。残念ながら、非 MF アセンブリから MF (マイクロフレームワーク) アセンブリを参照することはできません。これは単なる C# コードであり、このシナリオでは単体テストが非常に役立つため、残念です。.net マイクロ フレームワーク プロジェクトの単体テスト (できれば MSpec を使用) を行う方法を考え出した人はいますか?
tdd - これらの行テストスタイルの単体テストは、優れたTDD設計手法に従うように改善できますか?
.NET TDD / BDDフレームワークのいずれかで優れたTDD設計手法(名前付け、行テストの使用、クラスの設計)に従うために、次の単体テストを改善できますか?
また、この(NUnit)の例のように、各行に対して個別の期待値を持つことができる行テストを行うためのより良い方法は、フレームワークのいずれかにありますか?
ここでテスト対象のシステムConstraint
は、有効な整数の複数の範囲を持つことができるクラスです。テストテストは、NarrowDown
別の制約に基づいて有効範囲を小さくできる方法をテストします。