Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 30.11.2019
Сообщений: 37

Unit-тесты: System.NullReferenceException

18.06.2021, 12:11. Показов 1411. Ответов 6

Студворк — интернет-сервис помощи студентам
Я сейчас решил провести модульные тесты простенькие для методов и столкнулся с проблемой, что когда запускаю их, то выводится следующее исключение: " System.NullReferenceException: Object reference not set to an instance of an object". При этом когда запускаю программу все работает отлично.

Вот код моего теста

C#
1
2
3
4
5
6
7
8
9
10
11
12
        [TestMethod]
 
        public void TestCheckForeirnKeySellers()
        {
            StationaryProgram.Classes.DBConnection.Connect_DB();
            string nom_otdel = "4";
            int expected = 0;
            int actual = StationaryProgram.Classes.DepartmentsClass.CheckForeinghKeySellers("4");
 
            StationaryProgram.Classes.DBConnection.Close_DB();
            Assert.AreEqual(expected, actual);
        }
А вот код тестируемого метода.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        static public int CheckForeinghKeySellers(string nom_otdel)
        {
            //try
            //{
                object result;
                DBConnection.msCommand.CommandText = @"SELECT*FROM SELLERS where nom_otdel='"+nom_otdel+"'"; //Исключение возникает тут
                result = DBConnection.msCommand.ExecuteScalar();
                if(result==null)
                {
                    return 0;
                }
                else
                {
                    return 1;
                }
            //}
            //catch
            //{
            //    return 2;
            //}
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2021, 12:11
Ответы с готовыми решениями:

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." rowView было null
Ошибка в 3-ей строке private void DataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e) { DataGrid...

"System.NullReferenceException" в лоуде
Доброго времени суток бойцы , такая ситуация у меня , создал я ДатыГриды , сделал для них классы заполнил их и привязал (в лоуде ) ...

Ошибка в проекте: "Необработанное исключение типа "System.NullReferenceException" в WpfApplication8.exe"
Доброго времени суток, прошу помочь с данной проблемой выдаёт ошибку "Необработанное исключение типа...

6
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
18.06.2021, 12:27
Цитата Сообщение от Farade Посмотреть сообщение
то выводится следующее исключение
Для какой строки?
0
1 / 1 / 0
Регистрация: 30.11.2019
Сообщений: 37
18.06.2021, 12:32  [ТС]
DBConnection.msCommand.CommandText = @"SELECT*FROM SELLERS where nom_otdel='"+nom_otdel+"'"; //Исключение возникает тут
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
18.06.2021, 12:36
Цитата Сообщение от Farade Посмотреть сообщение
Исключение возникает тут
Поставьте точку останова и посмотрите, что равно null.

Объект DBConnection или его свойство/поле msCommand?
0
1 / 1 / 0
Регистрация: 30.11.2019
Сообщений: 37
18.06.2021, 12:44  [ТС]
на Сonnect_DB, но опять же при запуске программы все норм
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
18.06.2021, 13:04
Farade, по интерфейсу Форума:
 Комментарий модератора 
При обращении к другому пользователю указывайте его ник в тегах [NICK][/NICK] или цитируйте часть сообщения на которое отвечаете.
В противном случае ему не придёт уведомление о вашем обращении и вы можете не дождаться ответа на своё сообщение.

Для вставки ника: введите ник, выделите его и нажмите кнопку "Динамик" на панели редактора сообщений.
Или кликните по нику автора сообщения в панели слева от текста его сообщения.

Для вставки цитаты: выделите нужную цитату, должна появиться всплывающая кнопка "Цитировать", нажмите её.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
18.06.2021, 13:07
Цитата Сообщение от Farade Посмотреть сообщение
на Сonnect_DB, но опять же при запуске программы все норм
При запуске вы просто не попадает в эту ветку тестирования.
То есть выявляется потенциальный баг, который при каких-то вариантах действий может проявить себя.
Ставьте точку останова в тесте и смотрите почему там null.
Может что-то не туда или не там записали, а может эта ветка теста не нужна и её надо обходить.
Это надо полностью с самим приложением разбираться.
По отдельным фрагментам кода - ничего не скажешь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2021, 13:07
Помогаю со студенческими работами здесь

Unit тесты
Пытаюсь сделать свой первый юнит тест, все тесты почему то выводят исключение filenotfoundexception. В чем проблема может быть? public...

Unit тесты класса
привет всем, прошу помощи в создании тестов для нижеприведенного класса. с тестами до сей поры дело не имел, поэтому написание их вызывает...

Unit тесты не запускаются
Тесты не видят созданные классы. Хотя всё подключено. Как исправить?

Unit тесты в трёхслойной архитектуре
Всем привет. помогите пожалуйста с таким вопросом. У меня написаны DAL и BLL уровни. Мне необходимо протестировать BLL. Уровень...

Модульные тесты (UNIT TEST)
Всем привет. Есть небольшая проблемка. Подскажите пожалуйста ко чем сможет. Проблема следующая. У меня есть класс Vizualizator...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru