HostType が Moles の場合、ConfigurationManager.AppSettings 経由でデータを取得できません
2〜3か月前に私にとってはうまくいきました。しかし、それは機能せず、すべてのテスト ケースが失敗しました (null 参照例外が発生しました)。
修正するのを手伝ってください。ありがとう。
HostType が Moles の場合、ConfigurationManager.AppSettings 経由でデータを取得できません
2〜3か月前に私にとってはうまくいきました。しかし、それは機能せず、すべてのテスト ケースが失敗しました (null 参照例外が発生しました)。
修正するのを手伝ってください。ありがとう。
これは、現在のバージョンの Moles in .Net 4.0 の既知のバグです。構成マネージャーを Mole して、回避策として必要な値を返すようにすることができます。
例として、Linq To SQL DataContext のテストをセットアップして、SQL に接続せずに既定のコンストラクターのコード カバレッジを取得する方法を次に示します。
[TestInitialize]
[HostType("Moles")]
public void Setup()
{
MCodesConfigurationHelper.DataAccessSettingsGet = () =>
{
MCodesDataAccessSettings setting = new MCodesDataAccessSettings();
setting.DatabaseConnectionStringGet = () => { return "this is a connection string."; };
return setting;
};
MConfigurationManager.ConnectionStringsGet = () =>
{
MConnectionStringSettingsCollection strings = new MConnectionStringSettingsCollection();
strings.ItemGetString = (string connectionString) =>
{
var cstring = new MConnectionStringSettings();
cstring.ToString = () => { return connectionString; };
cstring.ConnectionStringGet = () => { return connectionString; };
return cstring;
};
return strings;
};
MDataContext.ConstructorString = (DataContext dataContext, string connection) => { };
}
[TestMethod]
[HostType("Moles")]
public void DefaultConstructorTest()
{
using (MyDataContext target = new MyDataContext())
{
Assert.IsNotNull(target);
}
}