Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 09.04.2019, 20:34   #1
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 15
Репутация: 10
По умолчанию Не срабатывает юнит тест для базы данных(Entity Framework)

Я делаю юнит тест на то что значения не null. Но тест не срабатывает. И я хз что не так.
Код:

[TestMethod]
        [ExpectedException(typeof(ArgumentNullException), "Expected ArgumentNullException")]
        public void UserNullArgument()
        {
            UserInfo userInfo = new UserInfo();
            userInfo.LastName = null;
            userInfo.Email = null;
        }

vovamakarovych вне форума   Ответить с цитированием
Старый 09.04.2019, 20:37   #2
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 15
Репутация: 10
По умолчанию

Моя модель UserInfo
Код:

[Table("UserInfo")]
    public class UserInfo
    {
        public UserInfo() { }
        public int Id { get; set; }
        public string Login { get; set; }
        public string Password { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public DateTime RegistrationDate { get; set; }
    }

vovamakarovych вне форума   Ответить с цитированием
Старый 09.04.2019, 20:59   #3
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,595
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

Что тут сработать должно? Вы просто объект создали, БД и ЕФ о нем ничего не знают.

Ну и вообще наверно обычно не стоит так тестить, тестите сразу регистрацию.
https://ru.hexlet.io/blog/posts/how-to-test-code

И имя UserInfo так себе, почему не просто User?
Бесполезный суффикс и странно читается, например, получится, что какие-то объекты в БД принадлежат инфе о юзере, а не юзеру.

Последний раз редактировалось Alex11223; 09.04.2019 в 21:01.
Alex11223 на форуме   Ответить с цитированием
Старый 10.04.2019, 20:34   #4
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что тут сработать должно? Вы просто объект создали, БД и ЕФ о нем ничего не знают.

Ну и вообще наверно обычно не стоит так тестить, тестите сразу регистрацию.
https://ru.hexlet.io/blog/posts/how-to-test-code

И имя UserInfo так себе, почему не просто User?
Бесполезный суффикс и странно читается, например, получится, что какие-то объекты в БД принадлежат инфе о юзере, а не юзеру.
спасибо. В есть вобще в sql такой ексепшен:
Код:

[ExpectedException(typeof(ArgumentNullException), "Expected ArgumentNullException")]

Я не нашел. Как тогда проверять на ексепшены в юнит тестах?
vovamakarovych вне форума   Ответить с цитированием
Старый 10.04.2019, 20:56   #5
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,595
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

Проверять что? В коде выше не упадет никакой экзепшн.
Alex11223 на форуме   Ответить с цитированием
Старый 10.04.2019, 21:06   #6
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Проверять что? В коде выше не упадет никакой экзепшн.
та я уже переделал...
Код:

[TestMethod]
         [ExpectedException(typeof(SqlException), "Expected ArgumentNullException")]
         public void UserNullArgument()
         {
             UserInfo userInfo = new UserInfo();
             userInfo.LastName = null;
             userInfo.Email = null;

             DataBaseManager dataBaseManager = new DataBaseManager();
             dataBaseManager.AddUser(userInfo);
         }

vovamakarovych вне форума   Ответить с цитированием
Старый 10.04.2019, 21:10   #7
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 15
Репутация: 10
По умолчанию

Юнит тест не срабатівает відает ошибку:
Цитата:
SqlException: Cannot insert the value NULL into column 'Login', table 'SocialNetwork.dbo.UserInfo'; column does not allow nulls. INSERT fails.
но я же этого и хочу добится. Поэтому я подумал что нету такого ексепшена...
vovamakarovych вне форума   Ответить с цитированием
Старый 10.04.2019, 21:36   #8
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,595
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

хз, я только xunit.net в дотнете в основном использовал.
Может SqlException не из того неймспейса?
Alex11223 на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
произвести контроль записываемых данных в Entity Framework vol2hv Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 03.06.2016 21:50
Entity framework ts-alan Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 30.05.2015 11:56
Entity framework One vs Zero-or-One ts-alan Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 23.04.2014 15:38
Entity Framework для c++/Cli inmyacid Общие вопросы .NET 1 09.12.2013 15:42
Подключение к удаленной Базе Данных с использованием Entity FrameWork Волкодав Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 18.04.2012 10:14


19:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru