2012-04-30 2 views
0

В моем проекте # класса С, у меня есть вспомогательный класс, который имеет следующее свойствоConfigurationManager код не выполняется, когда вызывается из проекта Nunit

public class Helper 
{ 
    public string ConnectionString 
    { 
     get 
     { 
      return ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 
     } 
    } 
} 

Мой следующий тест не пройден, когда я звоню класс Helper от проекта NUnit с сообщением об ошибке : Failure: System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта.

[Test] 
    public void connection_string_exists() 
    { 
     string connection = new Helper().ConnectionString; 
     Assert.NotNull(connection); 
    } 

Если я запускаю строка кода нового помощника(). ConnectionString из asp.net проекта, то он работает. Почему тест терпит неудачу?

Пожалуйста, дайте мне знать.

+0

Файл .config находится из Имя EXE. Что не является обычным, так как nunit запускает тест. –

ответ

1

Я подозреваю, что ваши тесты NUnit являются частью другого проекта, и при выполнении тестов, ConfigurationManager смотрит на конфигурационный файл вашего тестового проекта и не находит «MyConnectionString»

+0

, так как я могу это исправить? –

+1

Возможно, добавьте конфигурационный файл в проект Nunit и укажите раздел , который имеет значение. Но тогда, на самом деле вопрос, должен ли быть Единичный тест только для этого? Я вижу ваше намерение написать Unit Test для этого, но я не уверен, что это относится к единичному тестовому примеру. Возможно, другие могли бы добавить свое мнение для более широкого взгляда. – shashi

+0

Согласовано. Вы тестируете базовые функции .net. Оставьте это для тестирования Microsoft. – tsells

Смежные вопросы