NUnit не проходит тест с динамическим ключевым словом .Net 4.0

Я использую NUnit с Visual Studio Express Edition 2010 для C#. Теперь обычно тест работает нормально. Но всякий раз, когда я пытаюсь использовать Massive.cs с открытым исходным кодом, api для доступа к базе данных. Тест не проходит только из этого файла. Теперь, если я запускаю приложение, API работает нормально. Я создал другой файл библиотеки для доступа к базе данных.

Я серьезно не понимаю ошибки. Это просто дает ошибку, что ссылка на объект не установлена ​​​​на объект. Но если я запускаю код, он работает нормально. Я использую динамическое ключевое слово, как показано в ссылке API выше. Это создает проблемы с NUnit?

Есть ли другой способ тестирования в этом типе сценариев?

Вот дополнительные детали кода,

Тестовый класс такой

dynamic item = new Item();
item.Insert(new { Name = "Maggi", Description = "Its 2 Min Nuddles", IsDelete = false });

var items = item.All();

Assert.AreEqual("Maggi", items.FirstOrDefault().Name);

Теперь я поставил тест здесь. Что дает ошибку, как показано на изображении, Ошибка при тестировании с NUnit

Теперь, если я запускаю код в консольном приложении, код работает нормально, фрагмент кода приведен ниже.

dynamic item = new Item();
        item.Insert(new { Name = "Maggi", Description = "Its 2 Min Nuddles", IsDelete = false });


        var result = item.All();

        foreach (var i in result)
        {
            Console.WriteLine(i.Name + i.Description);
        }

        Console.Read();

Здесь код работает, и то же самое не работает с NUnit Test. Пожалуйста, посмотрите и помогите мне. Пожалуйста, дайте мне знать, если с моей стороны потребуется дополнительная информация.


person kunjee    schedule 21.11.2011    source источник
comment
какая именно ошибка?   -  person alexn    schedule 21.11.2011
comment
Вероятно, он ищет какой-то глобальный статический объект, например Application. Код и ошибка были бы полезны.   -  person Ritch Melton    schedule 21.11.2011
comment
Спасибо за быстрый ответ... Я сам добавляю снимок экрана, пожалуйста, посмотрите...   -  person kunjee    schedule 21.11.2011
comment
Вам нужно запустить отладчик и сказать, что именно было null, чтобы поставить правильный диагноз.   -  person Andrey Shchekin    schedule 23.11.2011


Ответы (2)


Наиболее вероятное объяснение заключается в том, что вы не настроили строку подключения в тестовом проекте.
Если вы используете NUnit, просто поместите ее в app.config вашего тестового проекта.

person Andrey Shchekin    schedule 22.11.2011
comment
Я установил строку подключения в тестовом проекте, поэтому работает другой код, только в тестовом проекте. Я положил это, чтобы проверить, это проблема с подключением. Тем не менее я перепроверяю и возвращаюсь. - person kunjee; 22.11.2011
comment
Хорошо, вы можете настроить Debug -> Exceptions -> Common Language Runtime Exceptions на разрыв при броске, запустить тест под отладчиком и посмотреть, что такое null? - person Andrey Shchekin; 22.11.2011
comment
Примечание работает. Вы проверили API. Ошибка при создании конструктора, производный класс открытого класса: DynamicModel {public производный класс(): база (ExpenseManager, Income, Id) {}}, когда этот ctor вызывается, выдает ошибку, показанную на изображении выше. - person kunjee; 22.11.2011
comment
Наконец нашел, наверное. Его динамика, которую я объявляю рядом с пунктом. при создании объекта. Из-за этого он не дает перечисления, пока я не начну зацикливаться. Я думаю, его время работы работает. Я конвертирую его в var, который является временем компиляции. если я использую var, он работает с такими операциями, как first и firstordefault. Но все равно тест не проходит. Я думаю, модульный тест не может инициировать динамическую вещь. - person kunjee; 22.11.2011
comment
В тестах нет ничего, что запрещало бы использовать dynamic, вам просто нужно отладить, что именно представляет собой null, без этого трудно помочь. - person Andrey Shchekin; 23.11.2011
comment
Ты прав. Dynamic разрешен и отлично работает с nunit. Но проблема в том, что код тоже работает отлично. Тем не менее, я проверяю это, вернусь, как только мы найдем проблему. - person kunjee; 01.12.2011

Решено... Возникла проблема с тестированием NUnit. Он не принимал конфигурационный файл идеально. Итак, я сделал два изменения. Изменения, которые я сделал в настройках проекта.

Первое изменение состоит в том, чтобы изменить базу приложений на bin\debug, просто укажите базу приложений как это, а затем файл конфигурации с .config на .exe.config, и все будет готово. :)

person kunjee    schedule 02.12.2011