JavaRush /Java блогы /Random-KK /JUnit I бөлім

JUnit I бөлім

Топта жарияланған

JUnit :: немесе JavaRush валидаторын қалай жақсы көру керек

I бөлім - 1Бұл жануар бізге не үшін қажет екендігі туралы қысқаша? JUnit - жақсы немесе жақсы емес codeты автоматты түрде тексеруге арналған құрылым . Сіз айта аласыз: - бұл свинг маған не үшін керек, мен жақсы Java codeымды оңай және оңай тексере аламын. Кіріспе сөздерді көп жазуға болады, бірақ мен ақын емеспін, іске кірісейік...

Объекті құру

Сонымен, бір нәрсені сынау үшін бізге алдымен сынақ нысаны қажет. Біздің алдымызда міндет тұр.
  1. Бізге Пайдаланушы туралы ақпаратты сақтайтын нысан қажет.
    1. Id - жаңа пайдаланушы қосылған ретпен есептелуі керек.
    2. Қолданушының аты.
    3. Оның жасы.
    4. Жынысы (ер/әйел)
  2. Пайдаланушылар тізімін сақтауды қамтамасыз ету қажет.

  3. Сынып қабілетті болуы керек.

    1. Барлық пайдаланушылардың тізімін жасаңыз.
    2. Жынысы бойынша пайдаланушылар тізімін жасаңыз (MALE/FEMALE).
    3. Жалпы тізімдегі пайдаланушылар санын қайтарыңыз және пайдаланушының жынысына негізделген санды есептеңіз.
    4. Пайдаланушы жасы бойынша жалпы соманы есептеңіз, сондай-ақ жынысты ескеріңіз.
    5. Орташа жасты жалпы және жыныс бойынша есептеңіз.
UserСонымен, an object құруды бастайық... Өрістерден тұратын Java класын жасайық :
private int id;
private String name;
private int age;
private Sex sex;
Бұл пайдаланушы деректерін сақтау үшін жеткілікті, тапсырма үшін тағы не қажет екенін көрейік. Бізге қандай да бір түрде барлық пайдаланушыларды сақтау керек, біздің сыныпта статикалық өріс жасайық allUsers, менің ойымша, бұл жақсыMap<Integer, User>
private static Map<Integer, User> allUsers;
Id Біз сондай-ақ қандай да бір түрде пайдаланушыларға реттік нөмірді тағайындауымыз керек, жаңа пайдаланушыны жасаған кезде пайдаланушыға реттік нөмірді тағайындайтын статикалық есептегіш өрісті жасайық .
private static int countId = 0;
idСонымен, біз өрістерді сұрыптаған сияқтымыз, an objectіміз үшін конструкторды, ал , name, age, өрістеріне алушыларды жазайық sex. Гетерамен күрделі ештеңе жоқ, IDEA- дан көмек сұрайық , ол ешқашан бас тартпайды, ал біз конструкторды аздап қиындатамыз. Дизайнер жасай алады. Өрістерді инициализациялаңыз, ішінде мұндай нысанның бар-жоғын тексеріңіз allUsers, егер мұндай нысан жоқ болса, онда есептегішті көбейтіп countId++, оны барлық пайдаланушылар тізіміне қосыңыз. allUsers Сондай-ақ , егер ол әлі инициализацияланбаған болса, өрісті инициализациялаңыз . Бірдей an objectілерді іздеудің ыңғайлылығы үшін біз әдістерді қайта анықтаймыз equals()және қайтадан сүйікті IDEA-hashCode() дан көмек сұраймыз және өрістер бойынша салыстырамыз , , . Сонымен қатар, мұндай нысанның тізімде бар-жоғын тексеретін жеке әдісті жасайық .nameagesexhasUser()
@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    User user = (User) o;
    return age == user.age &&
            Objects.equals(name, user.name) &&
            sex == user.sex;
}

@Override
public int hashCode() {

    return Objects.hash(name, age, sex);
}
Соңында мен осындай дизайнерді таптым.
public User(String name, int age, Sex sex) {
    if (allUsers == null){
        allUsers = new HashMap<>();
    }

    this.name = name;
    this.age = age;
    this.sex = sex;

    if (!hasUser()){
        countId++;
        this.id = countId;
        allUsers.put(id, this);
    }
}
және жеке көмекші әдісі
private boolean hasUser(){
    for (User user : allUsers.values()){
        if (user.equals(this) && user.hashCode() == this.hashCode()){
            return true;
        }
    }
    return false;
}
және де қайта анықтаңызtoString()
@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", age=" + age +
            ", sex=" + sex +
            '}';
}
Енді қажетті әдістердің логикасын жүзеге асыру уақыты келді. Логика негізінен статикалық өрістермен жұмыс істейтіндіктен, біз әдістерді де статикалық жасаймыз, олар an objectілер үшін қажет емес.
  1. Барлық пайдаланушылардың тізімін жасаңыз.
  2. Жынысы бойынша пайдаланушылар тізімін жасаңыз (MALE/FEMALE).
  3. a және b нүктелерін getAllUsers()барлығының тізімін қайтаратын әдіс және берілген параметрге байланысты тізімді қайтаратын Userшамадан тыс жүктелген әдіс арқылы жақсы өңдеуге болады .getAllUsers(Sex sex)Sex

    public static List<User> getAllUsers(){
        return new ArrayList<>(allUsers.values());
    }
    
    public static List<User> getAllUsers(Sex sex){
        List<User> listAllUsers = new ArrayList<>();
        for (User user : allUsers.values()){
            if (user.sex == sex){
                listAllUsers.add(user);
            }
        }
        return listAllUsers;
    }

  4. Жалпы тізімдегі пайдаланушылар санын қайтарыңыз және пайдаланушының жынысына негізделген санды есептеңіз.

    public static int getHowManyUsers(){
        return allUsers.size();
    }
    
    public static int getHowManyUsers(Sex sex){
        return getAllUsers(sex).size();
    }

  5. Пайдаланушы жасы бойынша жалпы соманы есептеңіз, сондай-ақ жынысты ескеріңіз. Осы тапсырманың әдістерін құрайық.

    public static int getAllAgeUsers(){
        int countAge = 0;
        for (User user : allUsers.values()){
            countAge += user.age;
        }
        return countAge;
    }
    
    public static int getAllAgeUsers(Sex sex){
        int countAge = 0;
        for (User user : getAllUsers(sex)){
            countAge += user.age;
        }
        return countAge;
    }

  6. Орташа жасты жалпы және жыныс бойынша есептеңіз.

    public static int getAverageAgeOfAllUsers(){
        return getAllAgeUsers() / getHowManyUsers();
    }
    
    public static int getAverageAgeOfAllUsers(Sex sex){
        return getAllAgeUsers(sex) / getHowManyUsers(sex);
    }

    Керемет, біз қажетті нысанды және оның әрекетін сипаттадық. Енді біз JUnit- ке ауыса аламыз , бірақ алдымен мен оны main жүйесінде орындасақ, қарапайым сынақтың қандай болатынын көрсетемін .

    public static void main(String[] args) {
        new User("Eugene", 35, Sex.MALE);
        new User("Marina", 34, Sex.FEMALE);
        new User("Alina", 7, Sex.FEMALE);
    
    
        System.out.println("All users:");
        User.getAllUsers().forEach(System.out::println);
        System.out.println("All users: MALE");
        User.getAllUsers(Sex.MALE).forEach(System.out::println);
        System.out.println("All users: FEMALE");
        User.getAllUsers(Sex.FEMALE).forEach(System.out::println);
        System.out.println("================================================");
        System.out.println(" all users: " + User.getHowManyUsers());
        System.out.println(" all MALE users: " + User.getHowManyUsers(Sex.MALE));
        System.out.println("all FEMALE users: " + User.getHowManyUsers(Sex.FEMALE));
        System.out.println("================================================");
        System.out.println(" total age of all users: " + User.getAllAgeUsers());
        System.out.println(" total age of all MALE users: " + User.getAllAgeUsers(Sex.MALE));
        System.out.println("total age of all FEMALE users: " + User.getAllAgeUsers(Sex.FEMALE));
        System.out.println("================================================");
        System.out.println(" average age of all users: " + User.getAverageAgeOfAllUsers());
        System.out.println(" average age of all MALE users: " + User.getAverageAgeOfAllUsers(Sex.MALE));
        System.out.println("average age of all FEMALE users: " + User.getAverageAgeOfAllUsers(Sex.FEMALE));
        System.out.println("================================================");
    }

    Консольдің шығысы келесідей болады, содан кейін біз қалыпты жұмыс істеп жатқанымызды салыстырамыз. Біз, әрине, тереңірек үңіліп, салыстыру логикасын жаза аламыз және біздің есептеуіміз не екенін көре аламыз, тіпті біз бәрін қамтамасыз ете алатынымызға сенімді емеспіз.

    //output
    Все пользователи:
    User{id=1, name='Eugene', age=35, sex=MALE}
    User{id=2, name='Marina', age=34, sex=FEMALE}
    User{id=3, name='Alina', age=7, sex=FEMALE}
    Все пользователи: MALE
    User{id=1, name='Eugene', age=35, sex=MALE}
    Все пользователи: FEMALE
    User{id=2, name='Marina', age=34, sex=FEMALE}
    User{id=3, name='Alina', age=7, sex=FEMALE}
    ================================================
           всех пользователей: 3
      всех пользователей MALE: 1
    всех пользователей FEMALE: 2
    ================================================
           общий возраст всех пользователей: 76
      общий возраст всех пользователей MALE: 35
    общий возраст всех пользователей FEMALE: 41
    ================================================
           средний возраст всех пользователей: 25
      средний возраст всех пользователей MALE: 35
    средний возраст всех пользователей FEMALE: 20
    ================================================
    
    Process finished with exit code 0

    Біз бұл нәтижеге риза емеспіз, негізгі сынақтардан төмен, бізге JUnit қажет .

JUnit-ті жобаға қалай қосуға болады

Оны жобаға қалай қосу керек деген сұрақ туындайды. Білетіндер үшін мен Maven опциясын қабылдамаймын , өйткені бұл мүлдем басқа оқиға. ;) Жоба құрылымын ашыңыз Ctrl + Alt + Shift + S -> Кітапханалар -> басыңыз + (Жаңа жоба кітапханасы) -> Maven ішінен таңдаңыз, I бөлім - 2содан кейін біз осындай терезені көреміз, іздеу жолағына “junit:junit:4.12” енгізіңіз. , тапқанша күтіңіз -> Жарайды! -> Жарайды! I бөлім - 3Нәтиже келесідей болуы керек I бөлім - 4OK түймесін басыңыз, құттықтаймыз JUnit жобаға қосылды. Әрі қарай жүрейік. Енді біз Java сыныбымыз үшін тесттер жасауымыз керек, курсорды сыныптың атауына қойыңыз User -> Alt + Enter пернелерін басыңыз -> Тест жасауды таңдаңыз. Біз JUnit4 кітапханасын таңдауымыз керек терезені көруіміз керек -> біз тексеретін әдістерді таңдаңыз -> OK I бөлім - 5Идеяның өзі класс жасайды UserTest, бұл біз codeымызды тесттермен қамтитын сынып. бастайық:

Біздің алғашқы @Test

Бірінші @Test әдісімізді жасайық getAllUsers()- бұл барлық пайдаланушыларды қайтаратын әдіс. Сынақ келесідей болады:
@Test
public void getAllUsers() {
    // create test data
    User user = new User("Eugene", 35, Sex.MALE);
    User user1 = new User("Marina", 34, Sex.FEMALE);
    User user2 = new User("Alina", 7, Sex.FEMALE);

    //create an expected list and fill it with the data of our method
    List<User> expected = User.getAllUsers();

    //create actual list put data in it for comparison
    //what we expect the method to return
    List<User> actual = new ArrayList<>();
    actual.add(user);
    actual.add(user1);
    actual.add(user2);

    //run the test if the list expected and actual are not equal
    //the test will fail, read the test results in the console
    Assert.assertEquals(expected, actual);
}
Мұнда біз бірнеше сынақ пайдаланушыларын жасаймыз -> expected әдісі бізге қайтарылатын пайдаланушыларды орналастыратын getAllUsers()тізімді жасаймыз -> Assert.assertEquals(нақты, күтілетін) әдісі actual деп есептейтін пайдаланушыларды орналастыратын тізімді жасаймыз. getAllUsers()пайдаланылады және біз оған тексерілген және ағымдағы тізімдерді береміз. Бұл әдіс берілген тізімдердегі нысандарды тексереді және сынақ нәтижесін қайтарады. Әдіс an objectілердің барлық өрістерін салыстырады, тіпті мұрагерлік бар болса, ата-аналардың өрістері арқылы өтеді. Бірінші сынақты орындайық... I бөлім - 6Сынақ сәтті аяқталды. Енді сынақты сәтсіз етуге тырысайық, ол үшін сынақ тізімдерінің бірін өзгерту керек, біз мұны тізімге бір пайдаланушының қосылуына түсініктеме беру арқылы жасаймыз actual.
@Test
public void getAllUsers() {
    // create test data
    User user = new User("Eugene", 35, Sex.MALE);
    User user1 = new User("Marina", 34, Sex.FEMALE);
    User user2 = new User("Alina", 7, Sex.FEMALE);

    //create an expected list and fill it with the data of our method
    List<User> expected = User.getAllUsers();

    //create actual list put data in it for comparison
    //what we expect the method to return
    List<User> actual = new ArrayList<>();
    actual.add(user);
    actual.add(user1);
    //actual.add(user2);

    //run the test if the list expected and actual are not equal
    //the test will fail, read the test results in the console
    Assert.assertEquals(expected, actual);
}
біз сынақты орындаймыз және келесіні көреміз: I бөлім - 7Енді біз сынақтың сәтсіздігінің себебін қарастырамыз. Мұнда біз тексерілген тізімдегі пайдаланушылардың ағымдағыға қарағанда көбірек екенін көреміз. Бұл сәтсіздіктің себебі. Біз мұны негізінен тексере аламыз ба? JUnit : main = 1 : 0. Тесттің құрамында мүлде басқа нысандар болса, қандай болатынын көрейік, оны келесідей орындайық:
@Test
public void getAllUsers() {
    // create test data
    User user = new User("Eugene", 35, Sex.MALE);
    User user1 = new User("Marina", 34, Sex.FEMALE);
    User user2 = new User("Alina", 7, Sex.FEMALE);

    //create an expected list and fill it with the data of our method
    List<User> expected = User.getAllUsers();

    //create actual list put data in it for comparison
    //what we expect the method to return
    List<User> actual = new ArrayList<>();
    actual.add(new User("User1", 1, Sex.MALE));
    actual.add(new User("User2", 2, Sex.FEMALE));
    actual.add(new User("User3", 3, Sex.MALE));

    //run the test if the list expected and actual are not equal
    //the test will fail, read the test results in the console
    Assert.assertEquals(expected, actual);
}
Бұл консольде болады: I бөлім - 8мұнда сіз салыстырылған тізімдерде әртүрлі пайдаланушылар бар екенін бірден көре аласыз, сонымен қатар айырмашылықты көру үшін <Click түймесін басуға болады> бізде қандай деректер бар екенін егжей-тегжейлі көре алатын терезе пайда болады. проблемасы. IDEA айырмашылықтар бар барлық өрістерді бөлектейді. I бөлім - 9mainбұл болуы мүмкін бе? - Жоқ. getAllUsers()JUnit : main = 2 : 0 Ал, әрі қарай жүрейік, бізде әлі де тестілеуді қажет ететін көптеген әдістер бар), бірақ күте тұрыңыз, әдіс бізге оралатынын тексеру жаман болмайды , өйткені бұл валидатор ұстаған JavaRushnull тапсырмаларымен не істейміз). Мұны істейік, бұл үш тиын мәселесі...
@Test
public void getAllUsers_NO_NULL() {
    //add check for null
    List<User> expected = User.getAllUsers();
    Assert.assertNotNull(expected);
}
Иә, иә, валидатордың біздің жаман codeты шамамен осылай ұстайтыны null;) Енді осы сынақты орындап, оның бізге не көрсететінін көрейік. Және ол қатені көрсетеді, қалай???? Бұл жерде тест қатесі қалай жасалуы мүмкін))) I бөлім – 10Ал біз codeты сынақтармен жабудың алғашқы жемісін аламыз. Естеріңізде болса, allUsers біз конструктордағы өрісті инициализациялағанбыз, яғни әдісті шақырған кезде getAllUsers()біз әлі инициализацияланбаған нысанға сілтеме жасаймыз. Оны өңдеп, конструктордан инициализацияны алып тастап, өрісті жариялау кезінде орындаймыз.
private static Map<Integer, User> allUsers = new HashMap<>();

    public User(String name, int age, Sex sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;

        if (!hasUser()) {
            countId++;
            this.id = countId;
            allUsers.put(id, this);
        }
    }
Тест тапсырайық, қазір бәрі жақсы. I бөлім - 11Менің ойымша, негізгі NPE-ді ұстау оңай емес, менің ойымша, сіз JUnit санымен келісесіз: main = 3: 0 Содан кейін мен барлық әдістерді сынақтармен қамтитын боламын және оның қалай көрінетінін көруге мүмкіндік беремін. ... Енді біздің тест сыныбымыз келесідей көрінеді:
package user;

import org.junit.Assert;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.*;

public class UserTest {

    @Test
    public void getAllUsers() {
        // create test data
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        //create an expected list and fill it with the data of our method
        List<User> expected = User.getAllUsers();

        //create actual list put data in it for comparison
        //what we expect the method to return
        List<User> actual = new ArrayList<>();
        actual.add(user);
        actual.add(user1);
        actual.add(user2);

        //run the test if the list expected and actual are not equal
        //the test will fail, read the test results in the console
        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllUsers_NO_NULL() {
        //add check for null
        List<User> expected = User.getAllUsers();
        Assert.assertNotNull(expected);
    }

    @Test
    public void getAllUsers_MALE() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        List<User> expected = User.getAllUsers(Sex.MALE);

        List<User> actual = new ArrayList<>();
        actual.add(user);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllUsers_MALE_NO_NULL() {
        //add check for null
        List<User> expected = User.getAllUsers(Sex.MALE);
        Assert.assertNotNull(expected);
    }

    @Test
    public void getAllUsers_FEMALE() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        List<User> expected = User.getAllUsers(Sex.FEMALE);

        List<User> actual = new ArrayList<>();
        actual.add(user1);
        actual.add(user2);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllUsers_FEMALE_NO_NULL() {
        //add check for null
        List<User> expected = User.getAllUsers(Sex.FEMALE);
        Assert.assertNotNull(expected);
    }

    @Test
    public void getHowManyUsers() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        int expected = User.getHowManyUsers();

        int actual = 3;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getHowManyUsers_MALE() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        int expected = User.getHowManyUsers(Sex.MALE);

        int actual = 1;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getHowManyUsers_FEMALE() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        int expected = User.getHowManyUsers(Sex.FEMALE);

        int actual = 2;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllAgeUsers() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        int expected = User.getAllAgeUsers();

        int actual = 35 + 34 + 7;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllAgeUsers_MALE() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        int expected = User.getAllAgeUsers(Sex.MALE);

        int actual = 35;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllAgeUsers_FEMALE() {
        User user = new User("Eugene", 35, Sex.MALE);
        User user1 = new User("Marina", 34, Sex.FEMALE);
        User user2 = new User("Alina", 7, Sex.FEMALE);

        int expected = User.getAllAgeUsers(Sex.FEMALE);

        int actual = 34 + 7;

        Assert.assertEquals(expected, actual);
    }
}
Иә, бұл аз емес болып шықты, бірақ үлкен жобалармен жұмыс істегенде не болады. Мұнда нені азайтуға болады?Бәрін бағалағаннан кейін, біз әрбір сынақта сынақ деректерін жасайтынымызды көре аласыз және мұнда annotationлар көмекке келеді. Алайық @Before- Аннотация @Beforeәдіс әрбір тексерілген әдіс алдында орындалатынын көрсетеді @Test. Енді annotationсы бар сынақ сыныбымыз келесідей болады @Before:
package user;

import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.*;

public class UserTest {
    private User user;
    private User user1;
    private User user2;

    @Before
    public void setUp() throws Exception {
        user = new User("Eugene", 35, Sex.MALE);
        user1 = new User("Marina", 34, Sex.FEMALE);
        user2 = new User("Alina", 7, Sex.FEMALE);
    }

    @Test
    public void getAllUsers() {
        List<User> expected = User.getAllUsers();

        List<User> actual = new ArrayList<>();
        actual.add(user);
        actual.add(user1);
        actual.add(user2);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllUsers_NO_NULL() {
        List<User> expected = User.getAllUsers();
        Assert.assertNotNull(expected);
    }

    @Test
    public void getAllUsers_MALE() {
        List<User> expected = User.getAllUsers(Sex.MALE);

        List<User> actual = new ArrayList<>();
        actual.add(user);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllUsers_MALE_NO_NULL() {
        //add check for null
        List<User> expected = User.getAllUsers(Sex.MALE);
        Assert.assertNotNull(expected);
    }

    @Test
    public void getAllUsers_FEMALE() {
        List<User> expected = User.getAllUsers(Sex.FEMALE);

        List<User> actual = new ArrayList<>();
        actual.add(user1);
        actual.add(user2);

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllUsers_FEMALE_NO_NULL() {
        //add check for null
        List<User> expected = User.getAllUsers(Sex.FEMALE);
        Assert.assertNotNull(expected);
    }

    @Test
    public void getHowManyUsers() {
        int expected = User.getHowManyUsers();

        int actual = 3;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getHowManyUsers_MALE() {
        int expected = User.getHowManyUsers(Sex.MALE);

        int actual = 1;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getHowManyUsers_FEMALE() {
        int expected = User.getHowManyUsers(Sex.FEMALE);

        int actual = 2;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllAgeUsers() {
        int expected = User.getAllAgeUsers();

        int actual = 35 + 34 + 7;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllAgeUsers_MALE() {
        int expected = User.getAllAgeUsers(Sex.MALE);

        int actual = 35;

        Assert.assertEquals(expected, actual);
    }

    @Test
    public void getAllAgeUsers_FEMALE() {
        int expected = User.getAllAgeUsers(Sex.FEMALE);

        int actual = 34 + 7;

        Assert.assertEquals(expected, actual);
    }
}
Ал, сіз ше, бұл қазірдің өзінде қызықтырақ және оқу оңайырақ;) Міне, JUnit үшін annotationлар тізімі, олармен өмір сүру оңайырақ.
@Test – определяет что метод method() является тестовым.
@Before – указывает на то, что метод будет выполнятся перед каждым тестируемым методом @Test.
@After – указывает на то что метод будет выполнятся после каждого тестируемого метода @Test
@BeforeClass – указывает на то, что метод будет выполнятся в начале всех тестов,
а точней в момент запуска тестов(перед всеми тестами @Test).
@AfterClass – указывает на то, что метод будет выполнятся после всех тестов.
@Ignore – говорит, что метод будет проигнорирован в момент проведения тестирования.
(expected = Exception.class) – указывает на то, что в данном тестовом методе
вы преднамеренно ожидаете Exception.
(timeout = 100) – указывает, что тестируемый метод не должен занимать больше чем 100 миллисекунд.
AssertТексерудің негізгі класс әдістері :
fail(String) – указывает на то что бы тестовый метод завалился при этом выводя текстовое сообщение.
assertTrue([message], boolean condition) – проверяет, что логическое condition истинно.
assertsEquals([String message], expected, actual) – проверяет, что два значения совпадают.
Примечание: для массивов проверяются ссылки, а не содержание массивов.
assertNull([message], object) – проверяет, что an object является пустым null.
assertNotNull([message], object) – проверяет, что an object не является пустым null.
assertSame([String], expected, actual) – проверяет, что обе переменные относятся к одному an objectу.
assertNotSame([String], expected, actual) – проверяет, что обе переменные относятся к разным an objectм.
Осылайша біз Maven жүйесінде JUnit 4.12 тәуелділігін қоса аламыз
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
жалғасы осында -> JUnit II бөлім
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION