Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2019, 19:34   #1
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 16
По умолчанию Не срабатывает юнит тест для базы данных(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, 19:37   #2
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 16
По умолчанию

Моя модель 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, 19:59   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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

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

И имя UserInfo так себе, почему не просто User?
Бесполезный суффикс и странно читается, например, получится, что какие-то объекты в БД принадлежат инфе о юзере, а не юзеру.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

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

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

И имя UserInfo так себе, почему не просто User?
Бесполезный суффикс и странно читается, например, получится, что какие-то объекты в БД принадлежат инфе о юзере, а не юзеру.
спасибо. В есть вобще в sql такой ексепшен:
Код:
[ExpectedException(typeof(ArgumentNullException), "Expected ArgumentNullException")]
Я не нашел. Как тогда проверять на ексепшены в юнит тестах?
vovamakarovych вне форума Ответить с цитированием
Старый 10.04.2019, 19:56   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Проверять что? В коде выше не упадет никакой экзепшн.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.04.2019, 20:06   #6
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 16
По умолчанию

Цитата:
Сообщение от 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, 20:10   #7
vovamakarovych
Пользователь
 
Регистрация: 09.04.2019
Сообщений: 16
По умолчанию

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

хз, я только xunit.net в дотнете в основном использовал.
Может SqlException не из того неймспейса?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
произвести контроль записываемых данных в Entity Framework vol2hv Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 03.06.2016 20:50
Entity framework ts-alan Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 30.05.2015 10: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