Не удалось прочитать ConfigurationManager.AppSettings на HostType ("Кроты") - PullRequest
1 голос
/ 28 октября 2011

Если HostType как Moles, то я не могу получить данные через ConfigurationManager.AppSettings

Это прекрасно работает для меня 2-3 месяца назад. Но это не сработало, и все мои тесты были неудачными (возникло исключение нулевой ссылки).

Пожалуйста, помогите мне исправить. спасибо.

Связанная тема также возникла в MSDN

1 Ответ

0 голосов
/ 28 октября 2011

Это известная ошибка в текущих версиях Moles в .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);
    }
}
...