2017-02-01 11 views
0

Visual Studio IDEでは、テストするコードの中を右クリックして単体テストを作成するオプションを選択することで、ソースファイルのコード用の単体テストクラスを持つ単体テストファイルを作成できます。テストするコードとテストコードを同じソースファイルに書き込むことはできますか?

テストするコードとテストするコードは、同じファイル内にあるだけでなく、同じ名前空間内にもありません。

テストするコードとテストコードを同じソースファイルに書き込むことはできますか?

はいの場合はどうですか?私はそれらを同じ名前空間または異なる名前空間に入れるべきですか? いくつか例を挙げてもらえますか?

ありがとうございました。

+4

できます。 –

答えて

0

はい、しかし

あなたがテスト中のシステムと同じコードベースに入れた場合、あなたはまた、テストを導入せずにシステムを展開することができません。テストを運用サーバーに配置しますか?

また、同じapp.config(またはソリューションに応じてweb.config)は、テストとテスト対象のシステムの両方に適用されます。つまり、AutoFacのようなものでは、通常は単体テスト/分離テストに便利な代替構成を設定できません。

2

それは可能ですが、それはまた、あなたがこのすべてが不要であるあなたのあなたのコードとテスト、ならびに任意のモック、ダミーデータなどを展開とライブラリを使用しようと誰もが混乱する可能性があることを意味します。

しかし、質問に答えるには、異なるnamespaceブロックを使用して、別の名前空間のテストクラスを分離してください。

namespace MyCompany.MyLibrary 
{ 
    // classes 
} 

namespace MyCompany.MyLibrary.Test 
{ 
    // tests, mocks, etc. 
} 
+0

プロジェクト/アセンブリ名でコードを分けている間、私は実際にはsutとテストクラスの名前空間を同じに保つことが大好きです。だからあなたはMyCompany.MyLibrary.dllとMyCompany.MyLibrary.Tests.dllを持っています。次に、テストクラスにMyCompany.MyLibrary名前空間を含める必要はありません。 – Fran

1

はい、「テスト対象コード」の出所に制限はありません。

UnitTestプロジェクトだけで、あなたのテストの次にしようとしているコードを置くことができます。同じ名前のファイルでも同じ名前のファイルであっても、C#はJavaではなく、ファイル名/場所と名前空間との接続はありません。

関連する問題