7

テストに関しては、私はそれに賛成しています。私は今では大ファンで、よく TDD のようなことをしています。VS 2010 では、設計とリグレッションのために MSTEST を使用しました。これは素晴らしいことです。私のプロジェクトはすべてオープン ソースであり、とにかく私の仕事 (物理研究 @ 大学) に接続されています。その後、Pex を使用すると、探していなかったあらゆる種類のエッジ ケースを見つけることができました。一般的に、これは私のコーディング方法に革命をもたらしました。そして、これが私に Moles を紹介してくれました。また、非常にクールです(しかし、私はまだ学んでいます)。

残念ながら、私は VS の Pro バージョンにしかアクセスできません (これは私の大学がサイト ライセンスとして取得するものです)。その結果、Moles は機能しなくなり、アップグレードの Fakes も機能しなくなります。また、Pex の次のバージョンは Fakes に依存し、Ultimate のみのオプションになると思います。

そのため、同様の機能を備えたオープン ソース ツールを探しています。成熟した OSS プロジェクトを比較した記事やリソースはありますか? 少し途方に暮れています (つまり、選択肢が多すぎます)。私はこのモッキング機能を気に入っていますが、これはツールであり、暇な時間を使って遊んでみたいものではありません (私の .NET プログラミングのほとんどはここで行われます)。

私は、実際のお金を使わずに Pex を交換することは不可能だと思います。

そして、私がそれに取り組んでいる間、おそらく、MSTEST よりも優れた他のテスト フレームワークがあるかどうかを確認する必要があるようです。MSTEST は非常に優れていますが、少し制限を感じ始めています (VS2012 の新機能があるとしても、それを調べていません)。

事前に助けてくれてありがとう、そして本当に、通常、私はより具体的な質問をしようとしますが、私はここで少し海にいます.

4

2 に答える 2

5
  1. 通常は VS 2012 内で作業している場合でも、VS 2010 でソリューションを開くことにより、引き続き PEX を使用してテストを生成できます。VS プロジェクト スキーマは、VS 2010 と VS 2012 の間で非常に互換性があります。コマンドを実行することも検討できます。ライン PEX 2010 アドインから。https://stackoverflow.com/a/6809669を参照して  ください

  2. PEX は、Moles や Fakes に限定されない他のモッキング フレームワークと連携する必要があります。たとえば、「Pex と MoQ の統合」を参照してください。

  3. フェイクが VS Premium で利用できるようになりました 

  4. 私たちのチームは多種多様なモッキング フレームワークからNSubstituteを選択しましたが、これには非常に満足しています。 

  5. また、.NET でテストを生成するための PEX の代替手段についても認識していません。ただし、AutoFixture を見てください。  どちらのプロジェクトも、テスト入力の自動生成に焦点を当ててい  ます。

于 2013-06-15T07:31:36.563 に答える
4

.NET でテストするための PEX に代わるものを知りません。

MoqRhino Mocksなど、Fakes フレームワークには多くの代替手段があります。より完全なリストについては、こちらを参照してください。個人的には流暢な API が好きなので Moq を使用しており、古典的なスタイルとモックイストスタイルの両方のテストをサポートしています。

Fakes フレームワークには、単体テストに適していない型 (sealed 型や静的メソッドなど) のシムを生成する機能も含まれています。TypeMock Isolatorはおそらくこれに代わる唯一の方法ですが、無料ではありません。テストに適した独自のラッパーを作成したり、何らかの形式のダックタイピングを使用したりできない場合。

Visual Studio 2012 には、テスト ランナー用のプラグイン アーキテクチャがあり、Peter Provst はプラグインのリストを管理していますVS 2012 は現在、MSTest の代わりにvstestconsoleを使用していると思います。確かに、2010 年よりも 2012 年の方が単体テストの実行がはるかに高速に感じられます。NUnit は、MSTest よりもパラメーター化されたテストをより適切にサポートしています。

于 2012-11-24T20:34:58.900 に答える