11

フォーラムを検索しましたが、同様の質問は見つかりませんでした。私は、ベストプラクティスとして前進する選択のモッキングフレームワークについて最終決定を下そうとしています-私はMoqを決定しました...最近、MSが同様に機能するように見えるMolesと呼ばれるモッキングフレームワークを最終的に作成したことを発見するまでプロファイラーAPIのセクシーネスなどを介してTypeMockに.

ここには 100 万の「NMock vs Moq vs TypeMock vs Rhino....」スレッドがあります。でもモグラが絡んでいるのを見たことがありません。実は少し前までその存在すら知りませんでした。使ってる人いますか?生産中?古いモッキングフレームワークを捨てた人はいますか?もしそうなら、どれを捨てますか? これまでに使用したモック フレームワークと比べてどうでしたか?

ありがとう.. ps、私たちは VS2008 を使用しており、まもなく 2010 に移行します。

4

6 に答える 6

7

Molesは、Microsoftの社内でいくつかの製品チームによって使用されています。

于 2010-04-23T09:30:34.897 に答える
7

私はあなたと同じシナリオにいるので、私の経験についてコメントしたいと思います。

TypemockとMolesはどちらも、分離という目標を念頭に置いています。特にそれらの厄介な封印されたクラス、非仮想メソッドの場合。

上記のような分離フレームワークは、特に開発の後期段階にある場合や、コードベースをまったく/ほとんど制御できない場合に必要になると思います。

これらはTypemockの利点です、私はまだMolesで発見していません

  • コードカバレッジツールのサポート(NcoverおよびPartcover)
  • プライベート(メソッド/プロパティ)の傍受/検証のサポート[はい、これは物議を醸しています]
  • より洗練された製品で、直感的なAPIを使用して高速に稼働します(Molesをいじって正しく動作させることもできます)

Molesが成熟してリリースされた製品になることを願っていますが、それをいじくり回し始めたのは、他のMSResearchプロジェクトと何ら変わりはないようです。通常は磨かれていませんが、それがこれらのタイプのプロジェクトの性質のようです。

于 2010-04-20T16:41:24.497 に答える
7

ほくろは嘲笑を次のレベルに引き上げていると思います。それははるかに強力です。

「生産中」とはどういう意味ですか? モルは単体テストでのみ役立ちます。これはパフォーマンスに深刻な影響を与え、本番環境で安全でないコードを許可します (IsAuthorized 関数を true を返すように置き換えることを考えたことはありますか?)。

モグラは2008年も2009年も使えます。

これがあなたの質問に答えることを願っています。

于 2010-04-01T19:43:13.250 に答える
1

モグラとペックスはパラダイムシフト!! 無料のフレームワークに期待するには多すぎます。これまでのところ、クロステクノロジーのコードベースを持っていない限り、それを使用しない理由はありませんが、それが.netである限り、私はモグラであり、Pexは間違いなく答えです!!

于 2010-07-19T21:25:12.927 に答える
1

そうかもしれませんが、その間にトリミングされているように見えるスレッドの問題はほとんどなく、再現が非常に困難です。アタッチされたプロセスにブレークポイントを設定しようとすると、基本的に VS 2010 がクラッシュします。1台のマシンだけでなく、後で不明な理由で消えました。

回り道が発生すると、デバッグはコードと回り道の間のダンスであり、最初に対処するのが難しい場合があります。そのようなときに例外が発生した場合、例外で中断するのは困難です。

自動生成されたテストと PUT - 伝達しようとしているメッセージを把握するのは困難です。つまり、コーディング パターンを変更するか、インターフェイスに基づいてパラメーター化されたテストを生成しようとするかのように、テスト対象のクラスに応じて、自動生成 PUT を生成する必要があります。パラメータ化されたテストを活用する最良の方法ではないかもしれません。

全体として、学習曲線があり、フレームワークも成熟するのに時間がかかります。肯定的な側面としては、コンセプトは優れており、メンテナンス コスト (正しく実装されている場合) であり、PEX をサポートするチームからの応答時間は非常に肯定的です。PEX フォーラムで 2 時間以内に役立つ回答が得られることもあります。

宜しくお願いします Yogesh Pawar

于 2010-09-06T22:12:40.767 に答える
0

「生産中」とは、生産で使用されている製品でそれを使用することを意味する場合、絶対に!

Moles を使用して、Google や McDonalds などの企業向けの非常に注目度の高いプロジェクトの単体テストで機能を分離しています。もちろん、単体テストは本番サーバーでは実行されないため、Moles が本番環境にデプロイされることはありません。

于 2012-02-24T16:33:05.687 に答える