2013-10-14 5 views
1

Я пытаюсь написать условные тесты с JUnit. Мне нужно проверить постоянство объектов, и если эти тесты пройдут, проверьте доступ через HTTP-методы (чтобы создать веб-службу REST).Junit: как сделать условные тесты?

На данный момент мое решение выглядит следующим образом:

public class ApplicationTest { 

    @Test 
    public void testSuite() { 
     final Request requestStatutTest = Request.method(this.getClass(), "insertStatutTest"); 
     final Result resStatutTest = new JUnitCore().run(requestStatutTest); 
     if (resStatutTest.wasSuccessful()) { 
      postStatutTest(); 
      getStatutTest(); 
      putStatutTest(); 
      deleteStatutTest(); 

    } 

    public void insertStatutTest() { 
    } 

    public void postStatutTest() { 
    } 

    // etc... 

} 

ли это хорошее решение?

ответ

8

Вместо утверждают, что свойство верно, вы можете использовать org.junit.Assume:

@Before 
public void checkAssumptions() { 
    org.junit.Assume.assumeTrue(someCondition()); 
    // or import static org.junit.Assume.* and then just call assumeTrue() 
} 

Если условие ложно, то это приведет к испытанию, заканчивающейся нарушенного предположения. Поскольку the docs say: :

Неудачное допущение не означает, что код сломан, но что тест не дает никакой полезной информации.

Это более слабое условие, чем неудавшееся утверждение (т. Е. Сбой теста), а бегун JUnit по умолчанию будет рассматривать этот тест как проигнорированный. Это похоже на то, что вы ищете - запустите тест, если упорство работает, иначе проигнорируйте его.

+0

Используется с теориями, но не думал использовать их таким образом. +1 –

Смежные вопросы