プロジェクトA - Webアプリケーション/ Webサイト
プロジェクトB - ユニットテストアプリケーションのVisual Studio 2010のユニットテスト
それはincrementCounter(ByRef nCounter As Integer)
またはgetSquare(ByVal nValue As Integer)
ような何かがいた場合、私は複数のプロジェクトでユニットテストを行うにはどのようによく知っています。しかし、私は、プロジェクトAで関数を呼び出し、テーブルの新しいレコードを検証するプロジェクトBでユニットテストを作成するよう求められています。私の問題は私がそうするとき、それは正常に構築されますが、(configファイルを使用して)データベースに接続しようとするとランタイム例外があります。私の質問は、プロジェクトAにあるプロジェクトBに同じ設定ファイルを持たなければならないのか、それともこの方法でウェブサイトの機能をユニットテストできないのでしょうか?
私はユニットテストをプロジェクトAに入れたいと思っていますが、現時点では(ボスは休暇中で、到達不能です)、これを行う承認はありません。私は、関数がユニットテストやブラウザを介して呼び出されているかどうかを調べるために条件文を使用しましたが、それは必要以上に機能するかもしれません。すべての助けをいただければ幸いです。ありがとう。
UPDATE 私は取得しています実際のエラーがある...私はそれだけの設定だかどうかを確認するつもりだ
Class.Function-->The key 'OraConnection.ConnectionString' does not exist in the appSettings Configuration section.
それは私ので、app.configファイルにだ場合それを他のプロジェクトにコピーしましたが、まだエラーが発生しています。ありがとう。
UPDATE 2
もう少し周りを見た後、プロジェクトAは、クラスライブラリです。しかし、私は同僚と話をし、web.configファイルは起動時にapp.configファイルに設定されているものをロードすることを知らせてくれました。また、私が持っているapp.configファイルのどれもがデータベース接続を持っているように見えないので、ソーシングの問題(または隠された状態を保つための巧妙な方法)のように思えます。私は適切に設定されたapp.configファイルを見つけようとしていて、それからテストします。みんな、ありがとう。
プロジェクトを1つのプロジェクトから別のプロジェクトに渡すことは、定義上、単体テストではありません。統合テストです。これは、一歩踏み込んでテストが近づいているプロセスを見て、現時点では非常に臨時のようにあなたのチームメートと上司に洞察を提供する良い機会かもしれません。 –
:)それはまさに他の同僚が私に言ったことです。私は単にファイルを使用するために単体テストと呼んでいて、ファイルを持ってほしいと思っているプロジェクトです。そうでなければ、私は間違いなくそれを統合テストと呼んでいます。ありがとう。 – XstreamINsanity
これは、プレゼンテーションコードからデータベースコードを分離する理由の完全な例です。このデータベースコードはWebサイトの一部であってはなりません。それは別のクラスライブラリになければなりません。これにより、テストが容易になります。 –