ادامه از اینجا شروع شد -> JUnit قسمت I
من همچنین می خواهم به شما نشان دهم که روش چگونه کار می کند
Assert.fail(String)
- اگر این متد فراخوانی شود، تست شکست می خورد. اگر متدهای دیگر کلاس Assert
نتوانند برای ما بررسی کنند، راحت است. فرض کنید باید پذیرش را منع کنیم new String(“”)
. بیایید سعی کنیم این کار را روی سازنده انجام دهیم و عبور را غیرفعال کنیم name = “” || null, age = 0; Sex = null
. بریم... فیلدهای اضافی برای تست اضافه کردم
private User user;
private User user1;
private User user2;
private User userNotAdd;
private User userNotAdd1;
و روش را تغییر دادsetUp()
@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);
userNotAdd = new User("", 0, null);
userNotAdd1 = new User(null, 0, null);
}
و سه روش تست اضافه کرد
@Test
public void newUser_EMPTY_NAME() {
for (User user : User.getAllUsers()){
if (user.getName() != null && user.getName().isEmpty()) {
Assert.fail("Попытка создания пользователя с пустым именем");
}
}
}
@Test
public void newUser_AGE_ZERO() {
for (User user : User.getAllUsers()) {
if (user.getAge() <= 0) {
Assert.fail("Попытка создания пользователя c не допустимым возрастом");
}
}
}
@Test
public void newUser_SEX_NO_NULL() {
for (User user : User.getAllUsers()) {
if (user.getSex() == null) {
Assert.fail("Попытка создания пользователя с указанием пола = null");
}
}
}
در تست ها، لیست کاربران اضافه شده را مرور می کنیم و می بینیم که آیا داده های نامعتبری وجود دارد یا خیر. تست ها رو بصورت دسته جمعی اجرا میکنیم و عکس زیر رو میبینیم... میبینید که تست های سازنده ما خراب شده و یکی دو تا تست دیگه هم گیر میاد حالا باید سازنده رو عوض کنیم که اضافه نشه یک کاربر با پارامترهای نامعتبر در لیست کاربران، اجازه دهید این کار را به صورت زیر انجام دهیم:
public User(String name, int age, Sex sex) {
if (name != null && !name.isEmpty() && age > 0 && sex != null){
this.name = name;
this.age = age;
this.sex = sex;
if (!hasUser()) {
countId++;
this.id = countId;
allUsers.put(id, this);
}
}
}
ما تست های خود را اجرا می کنیم و می بینیم که همه چیز زیبا است.به طور خلاصه، JUnit یک ابزار عالی برای پوشش کد شما با تست ها است. JUnit در ارتباط با Maven حتی بهتر کار خواهد کرد ، در هنگام ساخت پروژه، Maven قطعا تمام تست ها را اجرا می کند و سپس پروژه تمام شده ما را می سازد، اما اگر تست ها شکست بخورند، پروژه ساخته نمی شود و ما دلایل آن را خواهیم دانست. و تشخیص اینکه دقیقا کجا خراب است آسان تر خواهد بود. دومین مزیت JUnit مورد Refactoring است ، تستهای JUnit به ما کمک میکنند مطمئن شویم که منطق برنامهمان خراب نمیشود. و در پروژه های بزرگ زندگی بدون سیستم تست اتوماتیک امکان پذیر نیست، هرچند ممکن است اما پروژه شما با سرعت حلزون حرکت می کند... یا چیزی شبیه به آن... اگر کد خود را به خوبی با تست ها پوشش دهیم. ، پس ما می توانیم مطمئن باشیم که مشتری ما، محصول ما عالی کار خواهد کرد. P/S تشکر عمیق خود را از ویکتور سرگئیف ابراز می کنم!!! در اینجا پیوندهایی به درس ویدیویی که او در آن به ما آموزش داده است:
با تشکر از توجه شما!!! روحیه خوبی داشته باشید!!! و خداوند شما را از شر کد هندو نجات دهد!!! ...همچنین، اگر کسی علاقه مند به بررسی کد منبع مقاله است... بیا... شروع را اینجا به اشتراک می گذارم - بخش اول JUnit
GO TO FULL VERSION