JUnit حصو I

گروپ ۾ شايع ٿيل

JUnit :: يا JavaRush validator کي ڪيئن پيار ڪجي

JUnit حصو I - 1مختصر طور تي اسان کي هن جانور جي ضرورت ڇو آهي؟ JUnit هڪ فريم ورڪ آهي پاڻمرادو جانچ ڪرڻ لاءِ توهان جي سٺي يا نه-تو-سٺو ڪوڊ. توھان چئي سگھوٿا: - مون کي ھن جھولي جي ضرورت ڇو آھي، مان آساني سان ۽ آسانيءَ سان پنھنجو سٺو جاوا ڪوڊ ٽيسٽ ڪري سگھان ٿو. توهان تمام گهڻو تعارفي غزل لکي سگهو ٿا، پر مان گهڻو شاعر نه آهيان، اچو ته ڪم تي هلون...

هڪ اعتراض ٺاهيو

۽ ائين، ڪنهن شيءِ کي جانچڻ لاءِ، اسان کي پهريان هڪ امتحاني اعتراض جي ضرورت آهي. اسان جي اڳيان هڪ ڪم آهي.
  1. اسان کي هڪ اعتراض جي ضرورت آهي جيڪا صارف جي باري ۾ معلومات محفوظ ڪري.
    1. Id - ان ترتيب ۾ شمار ڪيو وڃي جنهن ۾ نئون استعمال ڪندڙ شامل ڪيو ويو.
    2. يوزر نالو.
    3. سندس عمر.
    4. جنس (مرد/عورت)
  2. اهو ضروري آهي ته صارفين جي فهرست جي اسٽوريج مهيا ڪرڻ لاء.

  3. ڪلاس کي قابل هجڻ گهرجي.

    1. سڀني استعمال ڪندڙن جي ھڪڙي فهرست ٺاھيو.
    2. جنس جي لحاظ کان استعمال ڪندڙن جي لسٽ ٺاھيو (MALE/FEMALE).
    3. عام لسٽ ۾ استعمال ڪندڙن جو تعداد واپس ڪريو، ۽ استعمال ڪندڙ جي جنس جي بنياد تي نمبر ڳڻيو.
    4. استعمال ڪندڙ جي عمر جي حساب سان ڪل رقم ڳڻيو، ۽ جنس جي حساب ۾ پڻ وٺو.
    5. سراسري عمر جي حساب ڪريو، مجموعي طور تي ۽ جنس جي لحاظ کان.
۽ ائين، اچو ته هڪ شئي ٺاهڻ شروع ڪريون... اچو ته هڪ جاوا ڪلاس ٺاهيون Userجنهن ۾ فيلڊون هجن:
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، name, age, sex. هيٽرا سان ڪا به پيچيدگي نه آهي، اچو ته IDEA کان مدد لاء پڇو ، هوء ڪڏهن به انڪار نه ڪندي، ۽ اسان تعمير ڪندڙ کي ٿورو مشڪل ڪنداسين. ڊزائنر ڪرڻ جي قابل هوندو. فيلڊ کي شروع ڪريو، چيڪ ڪريو ته ڇا ۾ ڪا اهڙي شئي آهي allUsers، جيڪڏهن ڪو اهڙو اعتراض نه آهي، پوء اسان جو ڪائونٽر وڌايو countId++۽ سڀني استعمال ڪندڙن جي لسٽ ۾ شامل ڪريو. ۽ فيلڊ کي پڻ شروع ڪريو allUsers جيڪڏهن اهو اڃا تائين شروع نه ڪيو ويو آهي. هڪجهڙا شيون ڳولڻ جي سهولت لاءِ، اسان طريقن کي نئين سر وضاحت ڪنداسين equals()۽ ، ٻيهر اسان پنهنجي پياري IDEAhashCode() کان مدد لاءِ پڇنداسين ۽ شعبن جي حساب سان موازنہ ڪنداسين ، . ان سان گڏ، اچو ته هڪ خانگي طريقو ٺاهيو جيڪو چيڪ ڪندو ته ڇا اهڙي شئي لسٽ ۾ آهي. 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 +
            '}';
}
هاڻي اهو وقت آهي ضروري طريقن جي منطق کي لاڳو ڪرڻ لاء. جيئن ته منطق بنيادي طور تي جامد شعبن سان ڪم ڪندو، اسان طريقن کي به جامد بڻائينداسين؛ انهن شين جي ضرورت ناهي.
  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 ڏانھن ، پر پھريائين مان توھان کي ڏيکاريندس ته ھڪڙو سادو امتحان ڇا نظر ايندو جيڪڏھن اسان ان کي مکيه ۾ ڪندا آھيون .

    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" داخل ڪريو. ، انتظار ڪريو جيستائين اهو ڳولي ٿو -> ٺيڪ! -> ٺيڪ! JUnit حصو I - 3نتيجو هن طرح ڏسڻ گهرجي JUnit حصو I - 4OK تي ڪلڪ ڪريو، مبارڪون JUnit کي منصوبي ۾ شامل ڪيو ويو آهي. اچو ته اڳتي وڌون. ھاڻي اسان کي پنھنجي جاوا ڪلاس لاءِ ٽيسٽ ٺاھڻ جي ضرورت آھي، ڪرسر کي ڪلاس جي نالي تي رکو User -> Alt + Enter کي دٻايو -> Create Test چونڊيو. اسان کي هڪ ونڊو ڏسڻ گهرجي جنهن ۾ اسان کي JUnit4 لائبريري کي چونڊڻ جي ضرورت آهي -> اهي طريقا چونڊيو جيڪي اسان ٽيسٽ ڪرڻ وارا آهيون -> OK JUnit حصو I - 5اهو خيال پاڻ هڪ ڪلاس ٺاهيندو UserTest، هي اهو ڪلاس آهي جنهن ۾ اسان پنهنجي ڪوڊ کي ٽيسٽ سان ڍڪيندا سين. اچو ته شروع ڪريون:

اسان جو پهريون @ ٽيسٽ

اچو ته اسان جو پهريون @ ٽيسٽ طريقو ٺاهيو 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()-> هڪ فهرست ٺاهيو actual جنهن ۾ اسان انهن صارفين کي رکون ٿا جن کي اسان فرض ڪيو ته getAllUsers()Assert.asserEquals(حقيقي، متوقع) طريقو استعمال ڪيو ويندو ۽ اسان ان کي لسٽون، معائنو ۽ موجوده، منتقل ڪنداسين. اهو طريقو مهيا ڪيل فهرستن ۾ شين کي جانچيندو ۽ امتحان جو نتيجو واپس ڪندو. طريقو سڀني شين جي شعبن جو مقابلو ڪندو، جيتوڻيڪ والدين جي شعبن جي ذريعي وڃڻ جي صورت ۾ وراثت آهي. اچو ته پھريون ٽيسٽ ھلون... جون يونٽ حصو 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هتي توهان فوري طور تي ڏسي سگهو ٿا ته مقابلي جي فهرستن ۾ مختلف استعمال ڪندڙ آهن، اسان پڻ ڪلڪ ڪري سگهون ٿا < فرق ڏسڻ لاءِ ڪلڪ ڪريو> اسان کي هڪ ونڊو ملندي جتي اسان تفصيل سان ڏسي سگهنداسين ته اسان وٽ ڪهڙي ڊيٽا آهي. سان مسئلو. IDEA سڀني شعبن کي اجاگر ڪندو جتي اختلاف آهن. JUnit حصو I - 9mainڇا اهو ٿي سگهي ٿو؟ - نه. JUnit : main = 2 : 0 خير، اچو ته اڳتي وڌون، اسان وٽ اڃا تائين طريقن جو هڪ گروپ آهي جنهن کي ٽيسٽ سان ڍڪڻ جي ضرورت آهي)، پر انتظار ڪريو، اهو جانچڻ خراب نه ٿيندو ته اهو طريقو اسان ڏانهن getAllUsers()موٽندو ، ڇاڪاڻ ته اهو آهي. اسان ڇا ڪندا آهيون JavaRushnull ڪمن سان جيڪي تصديق ڪندڙ طرفان پڪڙيا ويا آهن). اچو ته اهو ڪريون، اهو ٽن ڪوپيڪس جو معاملو آهي ...
@Test
public void getAllUsers_NO_NULL() {
    //add check for null
    List<User> expected = User.getAllUsers();
    Assert.assertNotNull(expected);
}
ها، ها، اهو لڳ ڀڳ اهو آهي ته ڪيئن تصديق ڪندڙ اسان جي خراب ڪوڊ کي پڪڙي ٿو null؛) هاڻي اچو ته هن ٽيسٽ کي هلون ۽ ڏسو ته اهو اسان کي ڇا ڏيکاري ٿو. ۽ اهو هڪ غلطي ڏيکاريندو، ڪيئن؟؟؟؟ هتي ڪيئن ٿي سگهي ٿو ٽيسٽ غلطي))) جون يونٽ حصو I - 10۽ هتي اسان پنهنجي ڪوڊ کي ٽيسٽ سان ڍڪڻ جو پهريون ميوو حاصل ڪري سگهون ٿا. جيئن توهان کي ياد آهي، 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);
        }
    }
اچو ته امتحان هلون، هاڻي سڀ ڪجهه ٺيڪ آهي. JUnit حصو I - 11مان نه ٿو سمجهان ته مکيه ۾ اين پي ايز کي پڪڙڻ آسان هوندو، مان سمجهان ٿو ته توهان متفق آهيو ته ڳڻپ آهي 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);
    }
}
ها، اهو نڪتو ته ننڍڙو نه آهي، پر ڇا ٿيندو جڏهن وڏي منصوبن سان ڪم ڪندي. هتي ڇا گهٽائي سگهجي ٿو؟ هر شي جو جائزو وٺڻ کان پوء، توهان ڏسي سگهو ٿا ته اسان هر ٽيسٽ ۾ ٽيسٽ ڊيٽا ٺاهي، ۽ هتي تشريحون اسان جي مدد لاء ايندا آهن. اچو ته وٺو @Before- تشريح @Beforeظاهر ڪري ٿي ته طريقو هر آزمائشي طريقي کان اڳ عمل ڪيو ويندو @Test. ھي اھو آھي جيڪو اسان جي ٽيسٽ ڪلاس سان تشريح سان ھاڻي نظر ايندي @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 جي تشريح جي هڪ فهرست آهي، اهو يقيني طور تي انهن سان گڏ رهڻ آسان آهي.
@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м.
اهو ڪيئن آهي اسان شامل ڪري سگهون ٿا JUnit 4.12 انحصار Maven ۾
<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