0

Specflow テストを書いています。メモリ内データベースから実行して、テストをより高速に実行し、データをより細かく制御したいと考えています。

現在: データコンテキストに Unit Of Work ライフタイムを使用 http://blog.stevensanderson.com/2007/11/29/linq-to-sql-the-multi-tier-story/

次のような偽のコンテキスト設定を使用する

この偽のコンテキストを Specflow で使用するにはどうすればよいですか? Specflow から現在の dbcontext シングルトンにアクセスできないようです。そのため、そこに偽の datacontext を設定して、実行中のテストに影響を与えることはできません。

Specflow でテストしていること、およびそのシナリオで偽のコンテキストを使用することを Web サイトに伝えることはできますか? ボタンを押すか URL パラメータを使用する必要がありますか、それとも他にできることはありますか?

4

1 に答える 1

0

この偽のコンテキストを Specflow で使用するにはどうすればよいですか? Specflow から現在の dbcontext シングルトンにアクセスできないようです。そのため、そこに偽の datacontext を設定して、実行中のテストに影響を与えることはできません。

エラーが何であるかを実際に述べていないのでinternal static class FakeContext、SpecFlow テストが宣言されているアセンブリとは異なるアセンブリで が宣言されていると大雑把に推測します。この場合、追加する必要があります

[assembly:InternalsVisibleTo("MyApplication.SpecFlowTests")] //name of the test assembly

を含む Assembly の AssemblyInfo.cs にFakeContext.

または、クラスを として宣言しpublicます。

Specflow でテストしていること、およびそのシナリオで偽のコンテキストを使用することを Web サイトに伝えることはできますか? ボタンを押すか URL パラメータを使用する必要がありますか、それとも他にできることはありますか?

テストしていることを Web サイトに伝えることはできますが、悪意のある個人が本番環境でそれを行う手順を見つけた場合、問題が発生します。

データベースをモックして Web サイトをテストすることについて話しているので、ATDD を使用していると仮定します ( Development_styleの最後の段落を参照)。自動化された方法でブラウザーを (通常は Selenium 経由で)。このようにして、その機能を一般に公開することなく、Web サイトがデータベースを選択する方法を制御できます。

于 2013-03-27T13:46:48.377 に答える