Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> junit тесты на калькулятор, Вопорс номер 2 
V
    Опции темы
Samotnik
Дата 26.10.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Добрый день!!
Помогите разобраться плз. Значит ситуация следущая:
Есть класс калькулятор, в нем метод с операциями. Интересует операция деления, а если точнеее, то деление на ноль!!!
Код

public void setOperation(char operation) {
//........................
                case('/'):
                    this.indicator = zapom / zapom2;
                    break;
            }
//...........................

И  тест на него (На деление на ноль)
Код

 public void testDivisionbyZeero() {
        CalculateMoj calc = new CalculateMoj();
        try {
            calc.setIndicator(12);
            calc.setOperation('/');
            calc.setIndicator(0);
            calc.setOperation('=');
        }
        catch (Exception e) {
            assertEquals(true, true);
        }
    }

Все работает идеально, как швейарские часы за 5000 $
НО    если в классе калькулятор написать
Код

case('/'):
                    try {
                    this.indicator = zapom / zapom2;
                    }
                    catch(Exception e) {
                        
                    }
                    break;

т.е. мы обрабатываем деление наноль, то тест проходит Успешно, а ведь он должен не пропустить, т.к. деления на 0, на самом деле нету!!
Что можно придумать в этой ситуации???

Это сообщение отредактировал(а) Samotnik - 26.10.2007, 11:39
PM MAIL   Вверх
Samotnik
Дата 26.10.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



разобрался
PM MAIL   Вверх
Shaggie
Дата 26.10.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



Цитата(Samotnik @  26.10.2007,  13:30 Найти цитируемый пост)
разобрался 

Молодец! И, во-первых, отпишись - это интересно. Во-вторых, вопрос имею задать - какой версией junit пользуешься?


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
Samotnik
Дата 26.10.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



junit - 3.8.1
Проблему решил  очень легким способом ))    Тест вот такой:
Код

public void testDivisionbyZeero() {
        try {
            calc.setIndicator(12);
            calc.setOperation('/');
            calc.setIndicator(0);
            calc.setOperation('=');
            assertTrue("Result of division operation", false);
        }
        catch (Exception e) {
        }
    }

А калькулятор  вот такой
Код

 case('/'):
                this.indicator = zapom / zapom2;
                break;

этот тест проходит,     а если написать 
Код

 case('/'):
try{
                this.indicator = zapom / zapom2;
                break;}
catch(Exception e){}

То тест не проходит, т.к. деления но ноль на самом  деле  нету )))
PM MAIL   Вверх
kkorsakoff
Дата 26.10.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 3
Всего: 14



На самом деле для решения подобных задач существует аннотация @Test
В ее параметрах есть expected - класс выбрасываемого исключения.
То есть, если метод НЕ выбросил данное исключение, то тест считается НЕ пройден

http://junit.sourceforge.net/javadoc_40/org/junit/Test.html

Это сообщение отредактировал(а) kkorsakoff - 26.10.2007, 17:36
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.