C#でテスト駆動開発できるようにする為のメモ
Visual Studio 2019 で、新規プロジェクト作成と同時に、テスト用のプロジェクトも作成し、テスト駆動開発できるようにする為の覚え書きです。
前提として、個人でC#を勉強中の身に過ぎず、プログラマとしての業務経験はありません。テスト駆動ってこんな感じかなーと探り探り進めている状態です。
使用製品
- Microsoft Visual Studio Community 2019 Version 16.11.4
- MsTest
なぜMSTest かというと、参考にしたサイトが MSTest を使っていたからです。
プロジェクト作成時にやること
- 新規プロジェクトを作成する
-
テスト用のプロジェクトを作成する
-
プロジェクト間の参照設定をする
- ソリューションエクスプローラで、テスト用プロジェクトの「参照」を右クリック→参照の追加→
- 「参照マネージャー」でプロジェクトタブを選択 → テスト対象のプロジェクト(最初に新規作成したプロジェクト)にチェックを入れる
-
テスト用クラスのテンプレートをインポートする
- テスト用プロジェクトを右クリック → 追加 → 既存の項目
- または Shift + Alt + A
テスト用クラスのテンプレート
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
namespace UnitTest
{
[TestClass]
public class UnitTest1
{
static Namespace.Class1 _TargetClass = null;
// テスト前の処理
[ClassInitialize()]
public static void ClassInitialize(TestContext testContext)
{
_TargetClass = new Namespace.Class1 ();
}
// テスト後の処理
[ClassCleanup()]
public static void ClassCleanup()
{
_TargetClass = null;
}
//テスト本体
[TestMethod()]
public void Class1_Test()
{
}
}
}
テストを書いていく際の備忘録
プライベートメソッドをテストしたい場合
privateメソッドをテストするには、PrivateObjectクラスのInvokeメソッドを使用します。
山本隆の開発日誌 - MSTestでprivateメソッドをテストする
その他、private static、親クラスのprivate メソッド等々、privateメソッドのテストについては上記ページで事足りる。
なお、.NET Core では PrivateObject クラスが廃止されており、private メソッドのテストは推奨されない模様
PrivateObject and PrivateType are not available for a project targeting netcorapp2.0 #366
Author And Source
この問題について(C#でテスト駆動開発できるようにする為のメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/BlueMomonga/items/bb21e61bd4bfa1e2026e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .