JavaRush /Java блогу /Random-KY /JUnit I бөлүк

JUnit I бөлүк

Группада жарыяланган

JUnit :: же JavaRush валидаторун кантип сүйүүгө болот

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

Объект түзүү

Ошентип, бир нерсени сынап көрүү үчүн, алгач сыноо an objectи керек. Биздин алдыбызда милдет турат.
  1. Бизге Колдонуучу жөнүндө маалыматты сактай турган an object керек.
    1. Id - жаңы колдонуучу кошулган тартипте эсептелиши керек.
    2. Колдонуучунун аты.
    3. Анын жашы.
    4. Жыныс эркек аял)
  2. Колдонуучулардын тизмесин сактоону камсыз кылуу зарыл.

  3. Класс жөндөмдүү болушу керек.

    1. Бардык колдонуучулардын тизмесин түзүү.
    2. Жынысы боюнча колдонуучулардын тизмесин түзүңүз (MALE/FEMALE).
    3. Жалпы тизмедеги колдонуучулардын санын кайтарып, санды колдонуучунун жынысына жараша эсептеңиз.
    4. Колдонуучунун жашы боюнча жалпы сумманы эсептеп, ошондой эле жынысын эске алуу.
    5. Жалпы жана жынысы боюнча орточо жашты эсептеңиз.
Ошентип, an object түзө баштайлы... Келгиле, Userталааларды камтыган 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;
Ошентип, биз талааларды иреттеп алдык окшойт, келгиле, an objectибиз үчүн конструктор, ал эми id, name, age, талаалары үчүн алгычтарды жазалы sex. Гетерада татаал эч нерсе жок, келгиле, IDEAдан жардам сурайлы , ал эч качан баш тартпайт жана биз конструкторду бир аз татаалдаштырабыз. Дизайнер кыла алат. Талааларды инициализациялаңыз, ичинде мындай an object бар же жок экендигин текшериңиз allUsers, эгерде андай an object жок болсо, анда биздин эсептегичти көбөйтүп countId++, аны бардык колдонуучулардын тизмесине кошуңуз. Жана ошондой эле талааны инициализациялоо, allUsers эгерде ал али баштала элек болсо. Окшош an objectтерди издөөнүн ыңгайлуулугу үчүн биз ыкмаларды кайра аныктайбыз equals()жана кайрадан сүйүктүү IDEAданhashCode() жардам сурап , , , талаалары боюнча салыштырабыз . Мындан тышкары, келгиле, мындай an object тизмеде бар же жок экенин текшере турган жеке ыкманы түзөлү. 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);
    }

    Жакшы, биз талап кылынган an objectти жана анын жүрүм-турумун сүрөттөп бердик. Эми биз JUnitге өтсөк болот , бирок адегенде мен сизге жөнөкөй тестирлөө кандай болорун көрсөтөм, эгерде биз муну негизгиде кылсак .

    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ден тандаңыз, JUnit I бөлүк - 2анда биз ушундай терезени көрөбүз, издөө тилкесине “junit:junit:4.12” киргизиңиз , тапкыча күтө тур -> OK! -> OK! I бөлүм - 3Сиз бул натыйжаны алышыңыз керек JUnit 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терди сынайт жана тесттин жыйынтыгын кайтарат. Метод an objectилердин бардык талааларын, атүгүл тукум куучулук бар болсо, ата-энелердин талааларын да салыштырат. Биринчи тестти иштетели... I бөлүм - 6Сыноо ийгorктүү аяктады. Эми тестти ийгorксиз кылганга аракет кылалы, бул үчүн биз тест тизмелеринин бирин өзгөртүүбүз керек, биз муну тизмеге бир колдонуучуну кошууга комментарий берүү менен жасайбыз 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);
}
биз тестти иштетебиз жана төмөнкүлөрдү көрөбүз: JUnit I бөлүк - 7Эми биз тесттин ийгorксиз болушунун себебин бир аз карап көрсөк болот. Бул жерде биз текшерилген тизмеде азыркыга караганда көбүрөөк колдонуучулар бар экенин көрүп жатабыз. Бул ийгorксиздиктин себеби болуп саналат. Муну негизинен текшере алабызбы? JUnit : main = 1 : 0. Келгиле, тест кандай болорун карап көрөлү, эгерде ал такыр башка an objectтерди камтыса, муну мындай кылалы:
@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);
}
Бул консолдо пайда болот: JUnit I бөлүк - 8бул жерде сиз салыштырылган тизмелерде ар кандай колдонуучулар бар экенин дароо көрө аласыз, ошондой эле айырманы көрүү үчүн <Click баскычын чыкылдатсаңыз болот> бизде кандай маалыматтар бар экенин деталдуу түрдө көрө турган терезе пайда болот. менен көйгөй. IDEA айырмачылыктар бар бардык талааларды бөлүп көрсөтөт. JUnit 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(), биз инициализациялана элек an objectке кайрылабыз дегенди билдирет. Келгиле, аны түзөтөлү, конструктордон инициализацияны алып салалы жана аны талааны жарыялоодо жасайлы.
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