1. はじめに
- MSTestクラスを使用して単体テストしようとした時にテスト対象プロジェクトのApp.configが参照できない問題を解決したい
2. 開発環境
- C#
- .Net 6
- MSTest
- Visual Stuido 2022
- Windows 11
3. 問題点
- テスト対象クラスでApp.Configの値を使用している場合、テストプロジェクトから参照できず、設定値がないことになる
3.1. テスト対象クラス
Class1.cs
public class Class1
{
public int Add(int x, int y)
{
var value = ConfigurationManager.AppSettings["value"];
return x + y + Convert.ToInt32(value);
}
}
3.2. App.config
App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Value" value="10" />
</appSettings>
</configuration>
3.3. テストクラス
Class1Tests.cs
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var class = new Class1();
Assert.AreEqual(class.add(1, 2), 10);
// 毎回NGになる
// expected: 13
// actual: 3 → App.configからvalueが取得できないため
}
}
4. 回避策
5. 参考文献