С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331

Unit тесты

19.02.2016, 13:03. Показов 1401. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не подскажете как грамотно составить unit тесты? И какие основные моменты нужно тестировать в приложениях? То есть например если я делаю запрос на сервер и могу получить от него ответ с ошибкой, но код ошибки может быть от 0 до 500 и что мне теперь нужно составить 500 тестов чтобы протестировать поведение приложения в каждом случае, взависимости от возвращаемой ошибки?? Или как нужно составить грамотно тест в этой конкретной ситуации что нужно учесть??
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2016, 13:03
Ответы с готовыми решениями:

Unit тесты
Доброе время суток! Хочу попросить сторонников и противников Unit тестирования высказать свое мнение по этому поводу. Какие негативные...

Unit-тесты
Как для класса Person сделать unit-тесты (equalsverifier) ??? public class Person { //создание класса Person private...

Тесты и бд
Здравствуйте. Помогите советом пожалуйста, я тестирую DAO слой(Hibernate + Spring). Я создал аналогичную тестовую бд. Вот код теста: ...

12
6 / 6 / 2
Регистрация: 21.07.2015
Сообщений: 21
19.02.2016, 13:45
в основном тестируют методы которые делают что то. тестирующий метод обзывается точно так же как и тестируемый только на конце приписывается Test.
https://www.youtube.com/watch?... v6&index=8
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.02.2016, 14:00
yura91, то что вы написили это не сценарий для юнит теста. Юнит тесты проверяют отдельные методы класса
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
19.02.2016, 14:33  [ТС]
А в чем смысл unit тестов я просто не совсем понимаю можете обьяснить принцип по которому работают unit тесты??Ну есть тестируемый метод есть тестирующий и что делает тестирующий метод с тестируемым ?? Как он его тестирует?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
19.02.2016, 14:40
Цитата Сообщение от yura91 Посмотреть сообщение
я делаю запрос на сервер и могу получить от него ответ с ошибкой, но код ошибки может быть от 0 до 500
Если у вас на каждый код ошибки - разные обработчики, то да.
Обычно считается достаточно покрыть все branch-и исполнения.

Пример
Java
1
2
3
4
5
if (response.getCode() == 200) {
   return "successs";
} else {
   return "failure"
}
Нужно написать два теста.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
19.02.2016, 16:23  [ТС]
Нужно написать два теста.
Как будут выглядеть 2 теста?
Если у вас на каждый код ошибки - разные обработчики, то да
Что значит разные обработчики - если уменя есть switch и у него 500 case на случай каждой ошибки то это будут разные обработчики или один?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
20.02.2016, 01:00
yura91, и в каждом case свой отдельный уникальный способ обработки этого кода? Тогда да, от 500 тестов никуда не деться.

Добавлено через 4 минуты
Цитата Сообщение от yura91 Посмотреть сообщение
Как будут выглядеть 2 теста?
Как-то так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class ServerResponseHandler {
    public String handleResponse(Response response) {
        if (response.getCode() == 200) {
            return "successs";
        } else {
            return "failure";
        }
    }
}
 
class Response {
    int code;
    int getCode() {
        return code;
    }
}
 
class ServerResponseHandlerTest {
    ServerResponseHandler handler = new ServerResponseHandler();
 
    @Test
    public void testSuccess() {
        Response response = new Response();
        response.code = 200;
        assertEquals("success", handler.handleResponse(response));
    }
 
    @Test
    public void testFailure() {
        Response response = new Response();
        response.code = 101;
        assertEquals("failure", handler.handleResponse(response));
    }
}
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
20.02.2016, 23:52  [ТС]
а почему в testFailure переменной code присваивается 101? ведь ее значение не обязательно должно быть равно 101, оно может быть любым отличным от 200 разве нет?

Добавлено через 1 минуту
и что делает вызов функции assertEquals?

Добавлено через 3 минуты
Здесь метод handleResponse тестируется? А почему названия методов для тестирования выбраны testSuccess() и testFailure() а не testhandleResponse например? Ведь названия тестирующих методов ничем не отличаются от названий тестируемых кроме того что в названии сначала идет слово test разве нет?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
21.02.2016, 16:11
Цитата Сообщение от yura91 Посмотреть сообщение
а почему в testFailure переменной code присваивается 101? ведь ее значение не обязательно должно быть равно 101, оно может быть любым отличным от 200 разве нет?
Да, любым. Можете взять любое, какое вам нравится.
Цитата Сообщение от yura91 Посмотреть сообщение
и что делает вызов функции assertEquals?
Проверяет, что два значения равны друг другу. Иначе - бросает AsssertionError
Цитата Сообщение от yura91 Посмотреть сообщение
Здесь метод handleResponse тестируется?
Да.
Цитата Сообщение от yura91 Посмотреть сообщение
А почему названия методов для тестирования выбраны testSuccess() и testFailure() а не testhandleResponse например?
Потому что название самого класса ServerResponseHandlerTest и из него уже и так понятно что мы тестируем ServerResponseHandler и его метод handleResponse.

Цитата Сообщение от yura91 Посмотреть сообщение
Ведь названия тестирующих методов ничем не отличаются от названий тестируемых кроме того что в названии сначала идет слово test разве нет?
Не понял вопроса. Как назовёте - так и будет называться.
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.02.2016, 17:58  [ТС]
Проверяет, что два значения равны друг другу. Иначе - бросает AsssertionError
И что делать в случае возникновения этого AsssertionError?? Как его обработать в данном случае?

Добавлено через 11 минут
И в каком порядке эти методц вызывать сначала handleResponse а потом 2 тестовых метода или как?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.02.2016, 18:19
Цитата Сообщение от yura91 Посмотреть сообщение
Как его обработать в данном случае?
никак. Если исключение возникает, тест считается проваленным.

Почему бы вам не почитать про юнит тесты. Как их пишут, как запускают и для чего они вообще нужны
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
21.02.2016, 18:34  [ТС]
А в каком порядке эти методы вызывать сначала handleResponse а потом 2 тестовых метода или как?

Добавлено через 1 минуту
Просто сама последовательность вызовов методов как будет выглядеть в этом случае?

Добавлено через 11 минут
а есть хорошая книга про unit тесты?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.02.2016, 20:47
Цитата Сообщение от yura91 Посмотреть сообщение
Просто сама последовательность вызовов методов как будет выглядеть в этом случае?
порядок запуска тестов обычно определяется фреймворком.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2016, 20:47
Помогаю со студенческими работами здесь

Тесты в JAVA
Пошел на курсы по JAVA, препод уже несколько лент рассказывает про тесты, говорит что все методы ПО которое мы пишем обязательно необходимо...

JUnit тесты
Мне нужно сделать тесты к проекту, собранному в Maven. Не понимаю, как создать тест. У меня в программе реализуется модуль .jar, который...

Тесты на java
здраствуйте, как сделать, что б при нажатию на кнопку мои ответы не суммировались, а обновлялись. Выходит отвечаешь на все вопросы и...

Тесты по Java
Всем привет, готовлюсь к тестированию по Java есть несколько для меня непонятных вопросов, помогите...

Python unit tests в maven
Есть Maven-проект, в котором есть некоторые питоновские скрипты. Для тестирования этих скриптов написал юнитесты. Хотелось бы знать, можно...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru