Как включить два свойства бегуна в один класс тестового примера?

 @RunWith(DataProviderRunner.class)
   @RunWith(SpringJUnit4ClassRunner.class)
    public class DatabaseModelTest {   
   // some tests
     }

or

    @RunWith(Parameterized.class)
       @RunWith(SpringJUnit4ClassRunner.class)
       public class DatabaseModelTest {   
      // some tests
       }
  • Мы не можем использовать два свойства бегуна в одном классе тестового примера...!! чтобы
  • Я хочу запустить тестовый пример с несколькими данными, как передать несколько параметров в веб-службу Rest для выполнения тестового примера ??

  • Любое решение для класса расширения для DataProviderRunner или параметризованного ??

Спасибо (оставайтесь на связи52)


person HASNEN LAXMIDHAR    schedule 09.01.2016    source источник
comment
Почему бы не использовать свой собственный бегун, который объединяет поведение двух других?   -  person juherr    schedule 10.01.2016
comment
пожалуйста, дайте мне пример, я пытался расширить класс и установить бегуна в суперклассе, но он не может получить свойство этого бегуна @juherr !! Дайте мне один пример, что вы хотите сказать? Спасибо.   -  person HASNEN LAXMIDHAR    schedule 11.01.2016
comment
Зачем тебе два бегуна? Эти два бегуна представляют собой разные подходы к параметризованным тестам. Обычно вам нужен только один из них.   -  person Stefan Birkner    schedule 12.01.2016
comment
@StefanBirkner отредактировал .. спасибо одному за выполнение тестового класса Sprint junit, а второму за поставщика данных   -  person HASNEN LAXMIDHAR    schedule 12.01.2016


Ответы (2)


Вы можете использовать правила Spring JUnit вместо SpringJUnit4ClassRunner. Это работает по крайней мере с раннером Parameterized. Я не знаю, работает ли это и с DataProviderRunner. Вам нужна как минимум версия 4.2.0 фреймворка Spring и spring-test.

@RunWith(Parameterized.class)
public class DatabaseModelTest {   
  @ClassRule
  public static final SpringClassRule SCR = new SpringClassRule();

  @Rule
  public final SpringMethodRule springMethodRule = new SpringMethodRule();

  ...
}
person Stefan Birkner    schedule 12.01.2016
comment
Можете ли вы объяснить, как определить @classrule и получить ошибку типа "SCR" в ClassRule должен реализовывать MethodRule или TestRule - person HASNEN LAXMIDHAR; 13.01.2016
comment
Какую версию JUnit вы используете? Вы должны использовать JUnit 4.12. - person Stefan Birkner; 13.01.2016
comment
получил решение, спасибо, проблема в том, что ответ версии Spring обновлен.. в вашем ответе - person HASNEN LAXMIDHAR; 13.01.2016

Я протестировал решение @Stefan и также хорошо работает для @RunWith(DataProviderRunner.class)

Я нашел второе решение в DataProvider for Spring Integration Testing, они написали класс DataProviderRunnerWithSpring и установите тестовый класс следующим образом:

@RunWith(DataProviderRunnerWithSpring.class)
public class TestClass{ 
... 
}
person jesusperalta    schedule 14.02.2017