powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что такое JUnit Test?
4 сообщений из 4, страница 1 из 1
Что такое JUnit Test?
    #33856552
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите написать простейшие JUnit test, пожалуйста. Чтоб я понял хоть что это такое и с чем едят.
...
Рейтинг: 0 / 0
Что такое JUnit Test?
    #33856774
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это специальный класс, который по очереди вызывает методы твоего приложения с заданными параметрами, и сравнивает ответ с референсными значениями.

Вот класс, который выполняет простейшие арифметические действия:
Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
 package  junit.sample;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
 public   class  SimpleMath
{
     public  SimpleMath() 
    {
    }
    /**
     * Складывает два числа
     * @param a int - первое число
     * @param b int - второе число
     * @return int - сумма чисел
     */
     public   int  add( int  a,  int  b)
    {
         return  a+b;
    }
    /**
     * Вычитает из первого числа второе
     * @param a int - первое число
     * @param b int - второе число
     * @return int - разница между первым и вторым
     */
     public   int  substract( int  a,  int  b)
    {
         return  a-b;
    }
    /**
     * Перемножает два числа
     * @param a int - первое число
     * @param b int - второе число
     * @return int - произведение двух чисел
     */
     public   int  multiply( int  a,  int  b)
    {
         return  a*b;
    }
    /**
     * Делит первое число на второе, отбрасывает остаток
     * @param a int - первое число
     * @param b int - второе число
     * @return int - результат целочисленного деления первого числа на второе
     */
     public   int  divide( int  a,  int  b)
    {
         return  a/b;
    }
}
А вот тест, который проверяет, что на некоторых значениях тесты отрабатывают правильно:
Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
 package  junit.sample;

 import  junit.framework.*;

 public   class  TestSimpleMath  extends  TestCase
{
     private  SimpleMath simpleMath =  null ;
     public  TestSimpleMath(String name) {
         super (name);
    }

     protected   void  setUp()  throws  Exception {
         super .setUp();
        simpleMath =  new  SimpleMath();
    }

     protected   void  tearDown()  throws  Exception {
        simpleMath =  null ;
         super .tearDown();
    }

     public   void  testAdd() {
         int  a =  1 ;
         int  b =  2 ;
         int  expectedReturn =  3 ;
         int  actualReturn = simpleMath.add(a, b);
        assertEquals("return value", expectedReturn, actualReturn);
    }

     public   void  testDivide() {
         int  a =  4 ;
         int  b =  2 ;
         int  expectedReturn =  2 ;
         int  actualReturn = simpleMath.divide(a, b);
        assertEquals("return value", expectedReturn, actualReturn);
    }

     public   void  testMultiply() {
         int  a =  2 ;
         int  b =  2 ;
         int  expectedReturn =  4 ;
         int  actualReturn = simpleMath.multiply(a, b);
        assertEquals("return value", expectedReturn, actualReturn);
    }

     public   void  testSubstract() {
         int  a =  5 ;
         int  b =  2 ;
         int  expectedReturn =  3 ;
         int  actualReturn = simpleMath.substract(a, b);
        assertEquals("return value", expectedReturn, actualReturn);
        /**@todo fill in the test code*/
    }

}

Естественно, приведенный пример примитивен, и тесты для таких тривиальных методов писать не имеет смысла. А вот когда у тебя в методе вызывается десяток других методов, то тест может показать, не допустил ли ты ошибки в одном из них, когда вносил последние изменения?

======================
- Я подхожу к клетке с медведем панда...
Видите, какие у него черные круги под глазами?!
Медведь панда как бы всем своим видом говорит нам: "Не бухайте!"
======================
...
Рейтинг: 0 / 0
Что такое JUnit Test?
    #33861061
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо.
...
Рейтинг: 0 / 0
Что такое JUnit Test?
    #33862199
Shkel Eugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу, написать метод который вызывает десятки других методов, а потом проверить это одним тестом - в результает он всигда падает, и находить где же ошибка прийдется по старинке, смотря стек трейсы, лазая по коду и попивая кофе.

хотя для функциональных тестов - этот вариант подойдет, но юнит тестами - язык не поворачивается. Юнит тест в идеале ДОЛЖЕН тестировать функциональность одного модуля(хотя может все 10 методов в одном юните? что-то мало вериться)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Что такое JUnit Test?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]