JUnit :: ё чӣ гуна валидатори JavaRush -ро дӯст доштан мумкин аст
Дар бораи чӣ ба мо ин ҳайвони ваҳшӣ лозим аст? JUnit чаҳорчӯбаест, ки ба таври худкор санҷиши рамзи хуб ё на он қадар хуб аст . Шумо метавонед бигӯед: - Чаро ба ман ин чархиш лозим аст, ман метавонам ба осонӣ ва ба осонӣ рамзи хуби Java-ро санҷам. Метавонед бисёр матнҳои муқаддимавӣ нависед, аммо ман чандон шоир нестам, биёед сари кор равем...Объект эҷод кунед
Ҳамин тавр, барои санҷидани чизе, ба мо аввал an objectи санҷишӣ лозим аст. Дар назди мо вазифа истодааст.- Ба мо an objectе лозим аст, ки маълумотро дар бораи корбар нигоҳ дорад.
- Id - бояд бо тартибе, ки корбари нав илова карда шудааст, ҳисоб карда шавад.
- Номи корбар.
- Синну соли ӯ.
- Ҷинс (мард/зан)
-
Нигоҳ доштани рӯйхати истифодабарандагонро таъмин кардан лозим аст.
-
Синф бояд қодир бошад.
- Рӯйхати ҳамаи корбаронро эҷод кунед.
- Рӯйхати корбаронро аз рӯи ҷинс эҷод кунед (MALE/FEMALE).
- Шумораи корбаронро дар рӯйхати умумӣ баргардонед ва рақамро дар асоси ҷинси корбар ҳисоб кунед.
- Маблағи умумиро аз рӯи синну соли корбар ҳисоб кунед ва инчунин ҷинсро ба назар гиред.
- Синну соли миёнаро ҳам дар маҷмӯъ ва ҳам аз рӯи ҷинс ҳисоб кунед.
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;
Ҳамин тавр, ба назар чунин мерасад, ки мо майдонҳоро ҷудо кардаем, биёед барои an objectи худ конструктор ва барои майдонҳои id
, name
, age
, гетерҳо нависед sex
. Бо гетера ҳеҷ чизи мушкиле нест, биёед аз IDEA кӯмак пурсем , вай ҳеҷ гоҳ рад намекунад ва мо конструкторро каме душвор мегардонем. Конструктор тавонистааст. Майдонҳоро оғоз кунед, санҷед, ки оё чунин an object allUsers
дар countId++
. Ва инчунин майдонро оғоз кунед, allUsers
агар он ҳанӯз оғоз нашуда бошад. Барои роҳати ҷустуҷӯи an objectҳои якхела, мо усулҳоро аз нав муайян мекунем equals()
ва боз аз IDEA-иhashCode()
маҳбуби худ кӯмак мепурсем ва аз рӯи майдонҳо , , муқоиса мекунем . Илова бар ин, биёед як усули хусусӣ эҷод кунем , ки тафтиш мекунад, ки оё чунин an object дар рӯйхат мавҷуд аст. name
age
sex
hasUser()
@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ҳо лозим нестанд.
- Рӯйхати ҳамаи корбаронро эҷод кунед.
- Рӯйхати корбаронро аз рӯи ҷинс эҷод кунед (MALE/FEMALE).
-
Шумораи корбаронро дар рӯйхати умумӣ баргардонед ва рақамро дар асоси ҷинси корбар ҳисоб кунед.
public static int getHowManyUsers(){ return allUsers.size(); } public static int getHowManyUsers(Sex sex){ return getAllUsers(sex).size(); }
-
Маблағи умумиро аз рӯи синну соли корбар ҳисоб кунед ва инчунин ҷинсро ба назар гиред. Биёед барои ин вазифа усулҳо эҷод кунем.
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; }
-
Синну соли миёнаро ҳам дар маҷмӯъ ва ҳам аз рӯи ҷинс ҳисоб кунед.
public static int getAverageAgeOfAllUsers(){ return getAllAgeUsers() / getHowManyUsers(); } public static int getAverageAgeOfAllUsers(Sex sex){ return getAllAgeUsers(sex) / getHowManyUsers(sex); }
Аҷаб, мо an objectи зарурӣ ва рафтори онро тавсиф кардем. Акнун мо метавонем ба JUnit гузарем , аммо аввал ман ба шумо нишон медиҳам, ки агар мо онро дар main иҷро кунем, санҷиши оддӣ чӣ гуна хоҳад буд .
public static void main(String[] args) { new User("Eugene", 35, Sex.MALE); new User("Marina", 34, Sex.FEMALE); new User("Alina", 7, Sex.FEMALE); System.out.println("All users:"); User.getAllUsers().forEach(System.out::println); System.out.println("All users: MALE"); User.getAllUsers(Sex.MALE).forEach(System.out::println); System.out.println("All users: FEMALE"); User.getAllUsers(Sex.FEMALE).forEach(System.out::println); System.out.println("================================================"); System.out.println(" all users: " + User.getHowManyUsers()); System.out.println(" all MALE users: " + User.getHowManyUsers(Sex.MALE)); System.out.println("all FEMALE users: " + User.getHowManyUsers(Sex.FEMALE)); System.out.println("================================================"); System.out.println(" total age of all users: " + User.getAllAgeUsers()); System.out.println(" total age of all MALE users: " + User.getAllAgeUsers(Sex.MALE)); System.out.println("total age of all FEMALE users: " + User.getAllAgeUsers(Sex.FEMALE)); System.out.println("================================================"); System.out.println(" average age of all users: " + User.getAverageAgeOfAllUsers()); System.out.println(" average age of all MALE users: " + User.getAverageAgeOfAllUsers(Sex.MALE)); System.out.println("average age of all FEMALE users: " + User.getAverageAgeOfAllUsers(Sex.FEMALE)); System.out.println("================================================"); }
Натиҷаи консол ба ин монанд хоҳад буд ва пас мо муқоиса мекунем, ки оё мо кори муқаррарӣ дорем. Мо метавонем, албатта, амиқтар равем, мантиқи муқоисаро нависем ва бубинем, ки ҳисобамон чӣ мегӯяд, ҳарчанд боварӣ надорем, ки мо ҳама чизро таъмин карда тавонистем.
//output Все пользователи: User{id=1, name='Eugene', age=35, sex=MALE} User{id=2, name='Marina', age=34, sex=FEMALE} User{id=3, name='Alina', age=7, sex=FEMALE} Все пользователи: MALE User{id=1, name='Eugene', age=35, sex=MALE} Все пользователи: FEMALE User{id=2, name='Marina', age=34, sex=FEMALE} User{id=3, name='Alina', age=7, sex=FEMALE} ================================================ всех пользователей: 3 всех пользователей MALE: 1 всех пользователей FEMALE: 2 ================================================ общий возраст всех пользователей: 76 общий возраст всех пользователей MALE: 35 общий возраст всех пользователей FEMALE: 41 ================================================ средний возраст всех пользователей: 25 средний возраст всех пользователей MALE: 35 средний возраст всех пользователей FEMALE: 20 ================================================ Process finished with exit code 0
Мо аз ин натиҷа қаноатманд нестем, аз санҷишҳои асосӣ , ба мо JUnit лозим аст .
Нуқтаҳои 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;
}
Чӣ тавр пайваст кардани JUnit ба лоиҳа
Саволе ба миён меояд, ки онро ба лоиха чй тавр пайваст кардан мумкин аст. Барои онҳое, ки медонанд, ман интихобро бо Maven қабул намекунам , зеро ин як ҳикояи тамоман дигар аст. ;) Сохтори лоиҳаро кушоед Ctrl + Alt + Shift + S -> Китобхонаҳо -> клик кунед + (Китобхонаи лоиҳаи нав) -> аз Maven интихоб кунед, пас мо чунин тирезаро мебинем, дар сатри ҷустуҷӯ "junit:junit:4.12" -ро ворид кунед. , интизор шавед, ки он пайдо шавад -> Хуб! -> Хуб! Шумо бояд ин натиҷаро ба даст оред OK ро пахш кунед, табрикот JUnit ба лоиҳа илова карда шуд. Биёед пеш равем. Ҳоло мо бояд барои синфи Java-и худ тестҳо эҷод кунем, курсорро ба номи синф гузоремUser
-> Alt + Enter -ро пахш кунед -> Эҷоди Test-ро интихоб кунед. Мо бояд равзанаро бубинем, ки дар он мо китобхонаи JUnit4-ро интихоб кунем -> усулҳоеро интихоб кунем, ки мо озмоиш мекунем -> Хуб Худи идея синф эҷод мекунад UserTest
, ин синфест, ки дар он мо codeи худро бо санҷишҳо фаро мегирем. Биёед оғоз кунем:
Аввалин @Test
Биёед усули аввалини @TestgetAllUsers()
-ро эҷод кунем - ин усулест, ки бояд ҳамаи корбаронро баргардонад. Санҷиш чунин хоҳад буд:
@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.assertEquals(воқеӣ, интизорӣ) истифода бурда мешавад ва мо руйхатхои тафтишшуда ва чорй ба он мегузарем. Ин усул an objectҳоро дар рӯйхатҳои пешниҳодшуда месанҷад ва натиҷаи санҷишро бармегардонад. Ин усул ҳамаи майдонҳои an objectҳоро муқоиса мекунад, ҳатто агар мерос вуҷуд дошта бошад, аз майдонҳои волидайн мегузарад. Имтихони якумро гузаронем... Санчиш бомуваффакият анчом ёфт. Акнун биёед кӯшиш кунем, ки санҷиш ноком шавад, барои ин мо бояд яке аз рӯйхатҳои санҷиширо тағир диҳем, мо инро тавассути шарҳ додани иловаи як корбар ба рӯйхат иҷро мекунем 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 : 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);
}
Ин аст он чизе ки дар консол хоҳад буд: дар ин ҷо шумо метавонед фавран бинед, ки дар рӯйхатҳои муқоисашуда корбарони гуногун мавҷуданд, мо инчунин метавонем <Click-ро пахш кунем, то фарқиятро бубинем> мо равзанае мегирем, ки дар он мо ба таври муфассал бубинем, ки кадом маълумот дар мо мавҷуд аст. мушкилот бо. IDEA ҳамаи соҳаҳоеро, ки фарқиятҳо мавҷуданд, таъкид хоҳанд кард. main
ин метавонад рӯй диҳад? - Не. getAllUsers()
JUnit : main = 2 : 0 Хуб, биёед идома диҳем, мо то ҳол як қатор усулҳое дорем, ки бояд бо санҷишҳо фаро гирифта шаванд), аммо мунтазир бошед, санҷед, ки оё усул ба мо бармегардад , бад нест , зеро ин мо бо null
супоришҳои JavaRush чӣ кор мекунем , ки аз ҷониби валидатор гирифта шудааст). Биёед, ин корро кунем, ин се копейка аст...
@Test
public void getAllUsers_NO_NULL() {
//add check for null
List<User> expected = User.getAllUsers();
Assert.assertNotNull(expected);
}
Бале, бале, тақрибан ҳамин тавр валидатор codeи null
моро мегирад ;) Акнун биёед ин санҷишро иҷро кунем ва бубинем, ки он ба мо чӣ нишон медиҳад. Ва он хато нишон медиҳад, чӣ тавр???? Чӣ гуна метавон дар ин ҷо хатои санҷишӣ содир кард))) Ва дар ин ҷо мо метавонем аввалин меваҳои пӯшонидани 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);
}
}
Биёед санҷишро иҷро кунем, ҳоло ҳама чиз хуб аст. Ман фикр намекунам, ки гирифтани 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);
}
}
Бале, он хурд набуд, аммо ҳангоми кор бо лоиҳаҳои калон чӣ мешавад. Дар ин ҷо чӣ метавон кам кард Пас аз баҳодиҳии ҳама чиз, шумо мебинед, ки мо дар ҳар як санҷиш маълумоти тестӣ эҷод мекунем ва дар ин ҷо шарҳҳо ба кӯмаки мо меоянд. Биёед бигирем @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
GO TO FULL VERSION