JavaRush /Java Blog /Random-TL /JUnit part I

JUnit part I

Nai-publish sa grupo

JUnit :: o kung paano mahalin ang JavaRush validator

JUnit part I - 1Sa madaling sabi tungkol sa kung bakit kailangan natin ang halimaw na ito? Ang JUnit ay isang balangkas para sa awtomatikong pagsubok sa iyong mabuti o hindi-mahusay na code. Masasabi mong: - bakit ko kailangan ang swing na ito, madali at simpleng masusubok ko ang aking magandang Java code. Maaari kang magsulat ng maraming panimulang liriko, ngunit hindi ako gaanong makata, mag-negosyo tayo...

Lumikha ng isang bagay

At kaya, para masubukan ang isang bagay, kailangan muna namin ng isang bagay na pansubok. Mayroon kaming isang gawain sa hinaharap.
  1. Kailangan namin ng isang bagay na mag-iimbak ng impormasyon tungkol sa User.
    1. Id - dapat mabilang sa pagkakasunud-sunod kung saan idinagdag ang bagong user.
    2. Username.
    3. Ang kanyang edad.
    4. Kasarian Lalake Babae)
  2. Ito ay kinakailangan upang magbigay ng imbakan ng isang listahan ng mga gumagamit.

  3. Dapat kayanin ng klase.

    1. Bumuo ng isang listahan ng lahat ng mga gumagamit.
    2. Bumuo ng listahan ng mga user ayon sa kasarian (MALE/FEMALE).
    3. Ibalik ang bilang ng mga user sa pangkalahatang listahan, at kalkulahin ang bilang batay sa kasarian ng user.
    4. Kalkulahin ang kabuuang halaga ayon sa edad ng user, at isinasaalang-alang din ang kasarian.
    5. Kalkulahin ang average na edad, parehong pangkalahatan at ayon sa kasarian.
At kaya, simulan natin ang paggawa ng object... Gumawa tayo ng Java class Userna maglalaman ng mga field:
private int id;
private String name;
private int age;
private Sex sex;
Ito ay sapat na upang mag-imbak ng data ng gumagamit, tingnan natin kung ano pa ang kailangan para sa gawain. Kailangan nating kahit papaano ay iimbak ang lahat ng mga user, gumawa tayo ng static na field sa ating klase allUsers, sa tingin ko ay ok lang kung ito ayMap<Integer, User>
private static Map<Integer, User> allUsers;
Kailangan din nating magtalaga ng sequence number sa mga user, gumawa tayo ng static na counter field, na, kapag gumagawa ng bagong user, ay magtatalaga ng sequence number Id sa user.
private static int countId = 0;
Kaya, tila inayos namin ang mga patlang, sumulat tayo ng isang tagabuo para sa aming bagay, at mga getter para sa mga patlang id, name, age, sex. Walang kumplikado sa heterae, humingi tayo ng tulong sa IDEA , hinding-hindi siya tatanggi, at gagawin nating medyo nakakalito ang constructor. Magagawa ng taga-disenyo. I-initialize ang mga field, suriin kung mayroong ganoong object sa allUsers, kung walang ganoong object, pagkatapos ay dagdagan ang aming counter countId++at idagdag ito sa listahan ng lahat ng user. At simulan din ang field allUsers kung hindi pa ito nasisimulan. Para sa kaginhawaan ng paghahanap ng magkatulad na mga bagay, muling tutukuyin namin ang mga pamamaraan equals()at hashCode(), muli kaming hihingi ng tulong mula sa aming minamahal na IDEA at ihambing sa pamamagitan ng mga patlang name, age, sex. Dagdag pa, gumawa tayo ng pribadong paraan hasUser()na susuriin kung nasa listahan ang naturang bagay.
@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);
}
Sa huli, napunta ako sa isang designer na ganito.
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);
    }
}
at isang paraan ng pribadong katulong
private boolean hasUser(){
    for (User user : allUsers.values()){
        if (user.equals(this) && user.hashCode() == this.hashCode()){
            return true;
        }
    }
    return false;
}
at muling tukuyintoString()
@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", age=" + age +
            ", sex=" + sex +
            '}';
}
Ngayon ay oras na upang ipatupad ang lohika ng mga kinakailangang pamamaraan. Dahil ang logic ay pangunahing gagana sa mga static na patlang, gagawin din namin ang mga pamamaraan na static; hindi sila kailangan para sa mga bagay.
  1. Bumuo ng isang listahan ng lahat ng mga gumagamit.
  2. Bumuo ng listahan ng mga user ayon sa kasarian (MALE/FEMALE).
  3. Ang mga puntos a at b ay maaaring pangasiwaan nang maayos sa pamamagitan ng isang paraan getAllUsers()na magbabalik ng isang listahan ng lahat User, at isang overload na paraan getAllUsers(Sex sex)na magbabalik ng isang listahan, depende sa naipasa na parameter 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. Ibalik ang bilang ng mga user sa pangkalahatang listahan, at kalkulahin ang bilang batay sa kasarian ng user.

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

  5. Kalkulahin ang kabuuang halaga ayon sa edad ng user, at isinasaalang-alang din ang kasarian. Gumawa tayo ng mga pamamaraan para sa gawaing ito.

    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. Kalkulahin ang average na edad, parehong pangkalahatan at ayon sa kasarian.

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

    Mahusay, inilarawan namin ang kinakailangang bagay at ang pag-uugali nito. Ngayon ay maaari na tayong lumipat sa JUnit , ngunit ipapakita ko muna sa iyo kung ano ang magiging hitsura ng isang simpleng pagsubok kung gagawin natin ito sa pangunahing .

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

    Ang output sa console ay magiging ganito ang hitsura, at pagkatapos ay ihahambing namin kung mayroon kaming normal na operasyon. Siyempre, maaari tayong lumalim, sumulat ng lohika ng paghahambing, at tingnan kung ano ang sinasabi ng ating kalkulasyon, kahit na hindi tayo makatitiyak na naibigay natin ang lahat.

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

    Hindi kami nasisiyahan sa kinalabasan na ito, sa mga pangunahing pagsubok , kailangan namin ng JUnit .

Paano ikonekta ang JUnit sa isang proyekto

Ang tanong ay lumitaw kung paano ikonekta ito sa proyekto. Para sa mga nakakaalam, hindi ako kukuha ng opsyon sa Maven , dahil isa itong ganap na kakaibang kuwento. ;) Buksan ang istraktura ng proyekto Ctrl + Alt + Shift + S -> Mga Aklatan -> i-click ang + (Bagong Aklatan ng Proyekto) -> pumili mula sa Maven, JUnit part I - 2pagkatapos ay makikita natin ang isang window, ipasok ang "junit:junit:4.12" sa search bar , maghintay hanggang mahanap ito -> OK! -> OK! JUnit bahagi I - 3Dapat mong makuha ang resultang ito JUnit bahagi I - 4I-click ang OK, binabati kita JUnit ay naidagdag sa proyekto. Mag-move on na tayo. Ngayon kailangan naming lumikha ng mga pagsubok para sa aming Java class, ilagay ang cursor sa pangalan ng klase User -> pindutin ang Alt + Enter -> piliin ang lumikha ng Pagsubok. Dapat tayong makakita ng isang window kung saan kailangan nating piliin ang library ng JUnit4 -> piliin ang mga pamamaraan na susuriin natin -> OK JUnit bahagi I - 5Ang ideya mismo ay lilikha ng isang klase UserTest, ito ang klase kung saan sasakupin natin ang ating code ng mga pagsubok. Magsimula na tayo:

Ang aming unang @Pagsusulit

Gawin natin ang ating unang @Test method getAllUsers()- ito ay isang paraan na dapat magbalik sa lahat ng user. Ang pagsubok ay magmumukhang ganito:
@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);
}
Dito kami lumikha ng ilang mga pagsubok na user -> lumikha ng isang listahan expected kung saan ilalagay namin ang mga user na ang pamamaraan ay babalik sa amin getAllUsers()-> lumikha ng isang listahan actual kung saan namin ilalagay ang mga user na aming ipinapalagay na ang getAllUsers()Assert.assertEquals(aktwal, inaasahan) na paraan ay gagamitin at ipapasa namin ang mga listahan, siniyasat at kasalukuyan, dito. Susubukan ng paraang ito ang mga bagay sa ibinigay na listahan at ibabalik ang resulta ng pagsubok. Ihahambing ng pamamaraan ang lahat ng larangan ng mga bagay, kahit na dumaan sa mga larangan ng mga magulang kung mayroong mana. Patakbuhin natin ang unang pagsubok... JUnit bahagi I - 6Matagumpay na natapos ang pagsubok. Ngayon subukan nating gawin ang pagsubok na mabigo, para dito kailangan nating baguhin ang isa sa mga listahan ng pagsubok, gagawin natin ito sa pamamagitan ng pagkomento sa pagdaragdag ng isang user sa listahan 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);
}
pinapatakbo namin ang pagsubok at nakikita ang mga sumusunod: JUnit bahagi I - 7Ngayon ay maaari nating tingnan nang kaunti ang dahilan ng pagkabigo ng pagsubok. Dito makikita natin na mas maraming user sa na-inspeksyon na listahan kaysa sa kasalukuyan. Ito ang dahilan ng kabiguan. Maaari ba nating suriin ito sa pangunahing? JUnit : main = 1 : 0. Tingnan natin kung ano ang magiging hitsura ng pagsubok kung naglalaman ito ng ganap na magkakaibang mga bagay, gawin natin ito tulad nito:
@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);
}
Ito ang lalabas sa console: JUnit bahagi I - 8dito makikita mo kaagad na may iba't ibang user sa mga inihambing na listahan, maaari din tayong mag-click sa <Click para makita ang pagkakaiba> makakakuha tayo ng isang window kung saan makikita natin nang detalyado kung anong data ang mayroon tayo problema sa. Iha-highlight ng IDEA ang lahat ng field kung saan may mga pagkakaiba. JUnit part I - 9mainmaaaring mangyari ito? - Hindi. JUnit : main = 2 : 0 Well, let's move on, we still have a bunch of methods that need to be covered with tests), but wait, it won't bad to check if the method will return to getAllUsers()us , because that's kung ano ang ginagawa namin sa nullmga gawain ng JavaRush na nakuha ng validator). Gawin natin ito, ito ay isang bagay ng tatlong kopecks...
@Test
public void getAllUsers_NO_NULL() {
    //add check for null
    List<User> expected = User.getAllUsers();
    Assert.assertNotNull(expected);
}
Oo, oo, ito ay humigit-kumulang kung paano nakuha ng validator ang aming bastos na code null;) Ngayon, patakbuhin natin ang pagsubok na ito at tingnan kung ano ang ipinapakita nito sa atin. At ito ay magpapakita ng isang error, paano???? Paano magagawa ang isang error sa pagsubok dito))) JUnit part I - 10At dito maaari nating anihin ang mga unang bunga ng pagsakop sa ating code ng mga pagsubok. Tulad ng natatandaan mo, allUsers sinimulan namin ang field sa constructor, na nangangahulugang kapag tinawag ang method getAllUsers(), tutukuyin namin ang isang bagay na hindi pa nasisimulan. I-edit natin ito, alisin ang initialization mula sa constructor, at gawin ito kapag nagdedeklara ng field.
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);
        }
    }
Patakbuhin natin ang pagsubok, ngayon ay maayos na ang lahat. JUnit bahagi I - 11Sa palagay ko ay hindi madaling mahuli ang mga NPE sa pangunahing, sa palagay ko ay sasang-ayon ka na ang bilang ay JUnit: main = 3: 0 Pagkatapos ay sasakupin ko ang lahat ng mga pamamaraan sa mga pagsubok, at hayaan kang makita kung ano ang magiging hitsura nito ... Ngayon ang aming klase sa pagsusulit ay ganito ang hitsura:
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);
    }
}
Oo, ito ay naging hindi maliit, ngunit kung ano ang mangyayari kapag nagtatrabaho sa malalaking proyekto. Ano ang maaaring bawasan dito? Pagkatapos suriin ang lahat, makikita mong gumagawa kami ng data ng pagsubok sa bawat pagsubok, at dito tumulong ang mga anotasyon. Kunin natin @Before- Ang anotasyon @Beforeay nagpapahiwatig na ang pamamaraan ay isasagawa bago ang bawat nasubok na paraan @Test. Ito ang magiging hitsura ngayon ng aming klase ng pagsubok na may anotasyon @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);
    }
}
Aba, paano ka, mas masaya at mas madaling basahin ;) Narito ang isang listahan ng mga anotasyon para sa JUnit; tiyak na mas madaling mamuhay kasama sila.
@Test – определяет что метод method() является тестовым.
@Before – указывает на то, что метод будет выполнятся перед каждым тестируемым методом @Test.
@After – указывает на то что метод будет выполнятся после каждого тестируемого метода @Test
@BeforeClass – указывает на то, что метод будет выполнятся в начале всех тестов,
а точней в момент запуска тестов(перед всеми тестами @Test).
@AfterClass – указывает на то, что метод будет выполнятся после всех тестов.
@Ignore – говорит, что метод будет проигнорирован в момент проведения тестирования.
(expected = Exception.class) – указывает на то, что в данном тестовом методе
вы преднамеренно ожидаете Exception.
(timeout = 100) – указывает, что тестируемый метод не должен занимать больше чем 100 миллисекунд.
Mga pangunahing pamamaraan ng klase Assertpara sa pagsusuri:
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м.
Ito ay kung paano namin maaaring magdagdag ng JUnit 4.12 dependency sa Maven
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
tinuloy dito -> JUnit part II
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION