+1 امتیاز
قبل در برنامه نویسی توسط (922 امتیاز)
برچسب گذاری دوباره قبل توسط
آیا چیزی شبیه assertException در JUnit وجود دارد ؟ من چیزی پیدا نکردم ؟

1 پاسخ

+1 امتیاز
قبل توسط (1.2هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ
اگر از JUnit 4.7 استفاده می کنید، شما می توانید از ExpectedException استفاده کنید.

@RunWith(JUnit4.class)
public class FooTest {
  @Rule
  public ExpectedException exception = ExpectedException.none();

  @Test
  public void doStuffThrowsIndexOutOfBoundsException() {
    Foo foo = new Foo();

    exception.expect(IndexOutOfBoundsException.class);
    foo.doStuff();
  }
}

 

همچنین یک راه دیگر :

@Test(expected=IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);
}

برتری راه اول نسبت به راه دوم آن است که در راه اول، انتظار بروز خطا در محلی بعد از یک LINE خاص قابل تعریف است. حال آنکه در روش دوم، انتظار بروز خطای مورد نظر در همه جای آن متد قابل تعریف است. یعنی نمی توان طوری تعریف کرد که بروز خطای مذکور در بخشی از بدنه متد باعث FAIL شدن تست بشود و در بخش دیگر باعث FAIL شدن تست نشود.

 

سوالات مشابه

0 امتیاز
0 پاسخ 468 بازدید
+1 امتیاز
0 پاسخ 937 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 517 بازدید
0 امتیاز
0 پاسخ 3.2هزار بازدید
+1 امتیاز
1 پاسخ 470 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
1 پاسخ 722 بازدید
+1 امتیاز
1 پاسخ 543 بازدید
...