Не удается прочитать ConfigurationManager.Настройки приложений для типа хоста («Родинки»)

#unit-testing #mstest #moles #pex-and-moles

#модульное тестирование #mstest #родинки #pex-и-родинки

Вопрос:

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

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

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

Связанный поток, поднятый в MSDN, также

Ответ №1:

Это известная ошибка в текущих версиях Moles в .Net 4.0 — вы можете использовать Configuration Manager и заставить его возвращать нужные вам значения в качестве обходного пути.

В качестве примера, вот как я настраиваю тест для 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);
    }
}
 

Комментарии:

1. Спасибо за ваш ответ. Я согласен с вашей точкой зрения, что после обновления родинок с академической до последней версии 4.0 только у меня возникла проблема с конфигурацией. Но мне нужно получить доступ к app.config для базы данных и ключу настройки приложения для доступа ко многим методам. Поэтому, пожалуйста, обновите, если есть какое-либо решение или исправление для этого.