1

HostType が Moles の場合、ConfigurationManager.AppSettings 経由でデータを取得できません

2〜3か月前に私にとってはうまくいきました。しかし、それは機能せず、すべてのテスト ケースが失敗しました (null 参照例外が発生しました)。

修正するのを手伝ってください。ありがとう。

MSDN で提起された関連スレッドも

4

1 に答える 1

0

これは、現在のバージョンの 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);
    }
}
于 2011-10-28T19:43:44.587 に答える