+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 پاسخ 415 بازدید
+1 امتیاز
0 پاسخ 807 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 409 بازدید
+1 امتیاز
1 پاسخ 325 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
1 پاسخ 464 بازدید
+1 امتیاز
1 پاسخ 430 بازدید
...