JUnit :: və ya JavaRush validatorunu necə sevmək olar

JUnit I hissə - 1Qısaca bu heyvana niyə ehtiyacımız var? JUnit yaxşı və ya yaxşı olmayan kodunuzu avtomatik olaraq sınamaq üçün bir çərçivədir . Deyə bilərsiniz: - bu yelləncək niyə mənə lazımdır, mən yaxşı Java kodumu asanlıqla və sadəcə sınaya bilərəm. Çoxlu giriş sözləri yaza bilərsiniz, amma mən çox şair deyiləm, gəlin işə başlayaq...

Obyekt yaradın

Beləliklə, bir şeyi sınamaq üçün əvvəlcə bir test obyektinə ehtiyacımız var. Qarşımızda bir vəzifə var.
  1. Bizə İstifadəçi haqqında məlumatı saxlayacaq obyekt lazımdır.
    1. İd - yeni istifadəçinin əlavə olunduğu ardıcıllıqla hesablanmalıdır.
    2. İstifadəçi adı.
    3. Onun yaşı.
    4. Cins Kişi Qadın)
  2. İstifadəçilərin siyahısının saxlanmasını təmin etmək lazımdır.

  3. Sinif bacarmalıdır.

    1. Bütün istifadəçilərin siyahısını yaradın.
    2. İstifadəçilərin cinsinə görə siyahısını yaradın (MALE/FEMALE).
    3. Ümumi siyahıdakı istifadəçilərin sayını qaytarın və istifadəçinin cinsinə görə sayını hesablayın.
    4. İstifadəçinin yaşına görə ümumi məbləği hesablayın və cinsini də nəzərə alın.
    5. Həm ümumi, həm də cinsinə görə orta yaşı hesablayın.
UserBeləliklə, gəlin obyekt yaratmağa başlayaq... Sahələri ehtiva edən Java sinfi yaradaq :
private int id;
private String name;
private int age;
private Sex sex;
Bu istifadəçi məlumatlarını saxlamaq üçün kifayətdir, görək tapşırıq üçün başqa nə lazımdır. Biz bir şəkildə bütün istifadəçiləri saxlamalıyıq, gəlin sinifimizdə statik bir sahə yaradaq allUsers, məncə, bu, yaxşıdır.Map<Integer, User>
private static Map<Integer, User> allUsers;
Biz də bir növ istifadəçilərə ardıcıllıq nömrəsi təyin etməliyik, gəlin statik sayğac sahəsi yaradaq ki, yeni istifadəçi yaradanda Id istifadəçiyə ardıcıllıq nömrəsi təyin edəcək.
private static int countId = 0;
Deməli, biz sahələri sıralamışıq, gəlin obyektimiz üçün konstruktor, , id, name, agesahələri üçün isə alıcılar yazaq sex. Heterae ilə mürəkkəb bir şey yoxdur, gəlin IDEA- dan kömək istəyək , o, heç vaxt imtina etməyəcək və biz konstruktoru bir az çətinləşdirəcəyik. Dizayner bacaracaq. Sahələri işə salın, içərisində belə bir obyektin olub olmadığını yoxlayın allUsers, əgər belə bir obyekt yoxdursa, sayğacımızı artırın countId++və bütün istifadəçilərin siyahısına əlavə edin. allUsers Həmçinin , hələ işə salınmayıbsa, sahəni işə salın . Eyni obyektlərin axtarışının rahatlığı üçün biz üsulları yenidən müəyyənləşdirəcəyik equals()və yenə də sevimli IDEA-hashCode() dan kömək istəyəcəyik və sahələr üzrə müqayisə edəcəyik , , . Üstəlik, belə bir obyektin siyahıda olub-olmadığını yoxlayacaq şəxsi metod yaradaq .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);
}
Sonda belə bir dizaynerlə qarşılaşdım.
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);
    }
}
və özəl köməkçi metodu
private boolean hasUser(){
    for (User user : allUsers.values()){
        if (user.equals(this) && user.hashCode() == this.hashCode()){
            return true;
        }
    }
    return false;
}
və həmçinin yenidən müəyyənləşdirintoString()
@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", age=" + age +
            ", sex=" + sex +
            '}';
}
İndi tələb olunan metodların məntiqini həyata keçirmək vaxtıdır. Məntiq əsasən statik sahələrlə işləyəcəyi üçün biz metodları da statik edəcəyik, onlar obyektlər üçün lazım deyil.
  1. Bütün istifadəçilərin siyahısını yaradın.
  2. İstifadəçilərin cinsinə görə siyahısını yaradın (MALE/FEMALE).
  3. ab nöqtələri getAllUsers()hamısının siyahısını qaytaracaq bir üsulla UsergetAllUsers(Sex sex)ötürülən parametrdən asılı olaraq siyahı qaytaracaq həddən artıq yüklənmiş metodla yaxşı idarə oluna bilər 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. Ümumi siyahıdakı istifadəçilərin sayını qaytarın və istifadəçinin cinsinə görə sayını hesablayın.

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

  5. İstifadəçinin yaşına görə ümumi məbləği hesablayın və cinsini də nəzərə alın. Bu tapşırıq üçün üsullar yaradaq.

    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. Həm ümumi, həm də cinsinə görə orta yaşı hesablayın.

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

    Əla, biz tələb olunan obyekti və onun davranışını təsvir etdik. İndi biz JUnit- ə keçə bilərik , amma əvvəlcə bunu əsas proqramda etsək, sadə bir testin necə görünəcəyini sizə göstərəcəyəm .

    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("================================================");
    }

    Konsolun çıxışı bu kimi görünəcək və sonra normal işləməyimizlə müqayisə edəcəyik. Biz, əlbəttə ki, daha dərinə gedə, müqayisə məntiqini yaza və hesablamamızın nə dediyini görə bilərik, baxmayaraq ki, hər şeyi təmin edə bildiyimizə əmin olmayacağıq.

    //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

    Bu nəticədən məmnun deyilik, əsas testlərlə aşağı, bizə JUnit lazımdır .

JUnit-i layihəyə necə qoşmaq olar

Sual yaranır ki, onu layihəyə necə qoşmaq olar. Bilənlər üçün Maven ilə seçim etməyəcəyəm , çünki bu tamamilə fərqli bir hekayədir. ;) Layihə strukturunu açın Ctrl + Alt + Shift + S -> Kitabxanalar -> klikləyin + (Yeni Layihə Kitabxanası) -> Maven-dən seçin, JUnit I hissə - 2sonra belə bir pəncərə görürük, axtarış çubuğuna “junit:junit:4.12” daxil edin. , tapana qədər gözləyin -> OK! -> OK! JUnit I hissə - 3Bu nəticəni almalısınız JUnit I hissə - 4OK düyməsini basın, təbriklər JUnit layihəyə əlavə edildi. Gəlin davam edək. İndi Java sinifimiz üçün testlər yaratmalıyıq, kursoru sinfin adının üzərinə qoymalıyıq User -> Alt + Enter düymələrini basın -> Test yarat seçin. Biz JUnit4 kitabxanasını seçməli olduğumuz bir pəncərə görməliyik -> sınaqdan keçirəcəyimiz metodları seçin -> OK JUnit I hissə - 5İdeyanın özü bir sinif yaradacaq UserTest, bu, kodumuzu testlərlə əhatə edəcəyimiz sinifdir. Gəlin başlayaq:

İlk @Testimiz

İlk @Test metodumuzu yaradaq getAllUsers()- bu, bütün istifadəçiləri qaytarmalı olan bir üsuldur. Test bu kimi görünəcək:
@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);
}
Burada biz bir neçə test istifadəçisi yaradırıq -> expected metodu bizə qayıdacaq istifadəçiləri yerləşdirəcəyimiz getAllUsers()siyahı yaradın -> Assert.assertEquals(aktual, gözlənilən) metodunun actual olduğunu güman etdiyimiz istifadəçiləri yerləşdirəcəyimiz siyahı yaradın. getAllUsers()istifadə olunacaq və biz yoxlanılmış və cari siyahıları ona ötürəcəyik. Bu üsul təqdim edilmiş siyahılardakı obyektləri sınaqdan keçirəcək və test nəticəsini qaytaracaq. Metod, miras varsa, hətta valideynlərin sahələrindən keçərək, obyektlərin bütün sahələrini müqayisə edəcəkdir. Gəlin ilk testi keçirək... JUnit I hissə - 6Test uğurla başa çatdı. İndi testin uğursuz olmasına çalışaq, bunun üçün test siyahılarından birini dəyişdirməliyik, bunu siyahıya bir istifadəçinin əlavə edilməsini şərh etməklə edəcəyik 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);
}
testi həyata keçiririk və aşağıdakıları görürük: JUnit I hissə - 7İndi testin uğursuzluğunun səbəbinə bir az baxa bilərik. Burada biz yoxlanılan siyahıda indiki ilə müqayisədə daha çox istifadəçinin olduğunu görürük. Uğursuzluğun səbəbi budur. Bunu əsas olaraq yoxlaya bilərikmi? JUnit : main = 1 : 0. Baxaq görək test tamamilə fərqli obyektləri ehtiva edərsə necə görünəcək, bunu belə edək:
@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);
}
Bu konsolda olacaq: JUnit I hissə - 8burada siz dərhal müqayisə edilən siyahılarda fərqli istifadəçilərin olduğunu görə bilərsiniz, biz də <Click fərqini görmək üçün klikləyə bilərik> bizdə hansı məlumatların olduğunu ətraflı görə biləcəyimiz bir pəncərə alacağıq. ilə problem. IDEA fərqlərin olduğu bütün sahələri vurğulayacaq. JUnit I hissə - 9mainbu baş verə bilərmi? - Yox. getAllUsers()JUnit : main = 2 : 0 Yaxşı, davam edək, hələ də testlərlə əhatə olunmalı bir çox metodumuz var), amma gözləyin, metodun bizə qayıdacağını yoxlamaq pis olmaz , çünki bu validator tərəfindən tutulan JavaRushnull tapşırıqları ilə nə edirik). Bunu edək, üç qəpik məsələdir...
@Test
public void getAllUsers_NO_NULL() {
    //add check for null
    List<User> expected = User.getAllUsers();
    Assert.assertNotNull(expected);
}
Bəli, bəli, validator bizim pis kodumuzu təxminən belə tutur null;) İndi bu testi keçirək və bizə nə göstərdiyini görək. Və bir səhv göstərəcək, necə???? Burada necə bir test xətası ola bilərdi))) JUnit I hissə - 10Və kodumuzu testlərlə əhatə etməyin ilk bəhrələrini burada yığa bilərik. Yadınızdadırsa, allUsers konstruktorda sahəni işə saldıq, yəni metodu çağırarkən getAllUsers()biz hələ işə salınmamış obyektə istinad edəcəyik. Onu redaktə edək, inisializasiyanı konstruktordan çıxaraq və sahəni elan edərkən bunu edək.
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);
        }
    }
Testi keçirək, indi hər şey yaxşıdır. JUnit I hissə - 11Əsasən NPE-ləri tutmağın asan olacağını düşünmürəm, hesab edirəm ki, JUnit: main = 3: 0 olması ilə razılaşarsınız. Sonra bütün metodları testlərlə əhatə edəcəm və necə görünəcəyini görək. ... İndi test sinifimiz belə görünür:
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);
    }
}
Bəli, kiçik olmadığı ortaya çıxdı, amma böyük layihələrlə işləyərkən nə olacaq. Burada nəyi azaltmaq olar?Hər şeyi qiymətləndirdikdən sonra görə bilərsiniz ki, biz hər testdə test məlumatları yaradırıq və burada bizə annotasiyalar gəlir. Gəlin götürək @Before- Annotasiya @Beforemetodun hər bir sınaqdan keçirilmiş metoddan əvvəl icra olunacağını göstərir @Test. Annotasiya ilə test sinifimiz indi belə görünəcək @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);
    }
}
Bəli, necə deyərlər, artıq daha əyləncəli və oxumaq daha asandır;) JUnit üçün annotasiyaların siyahısı budur, onlarla yaşamaq mütləq daha asandır.
@Test – определяет что метод method() является тестовым.
@Before – указывает на то, что метод будет выполнятся перед каждым тестируемым методом @Test.
@After – указывает на то что метод будет выполнятся после каждого тестируемого метода @Test
@BeforeClass – указывает на то, что метод будет выполнятся в начале всех тестов,
а точней в момент запуска тестов(перед всеми тестами @Test).
@AfterClass – указывает на то, что метод будет выполнятся после всех тестов.
@Ignore – говорит, что метод будет проигнорирован в момент проведения тестирования.
(expected = Exception.class) – указывает на то, что в данном тестовом методе
вы преднамеренно ожидаете Exception.
(timeout = 100) – указывает, что тестируемый метод не должен занимать больше чем 100 миллисекунд.
AssertYoxlama üçün əsas sinif üsulları :
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-də JUnit 4.12 asılılığını belə əlavə edə bilərik
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
davamı burada -> JUnit II hissə