Springockito как?

Я хочу издеваться над DAO bean, используя Springockito в одном из моих IT. В моем IT я должен использовать spring context.xml для автоматического подключения некоторых сервисов, а также mockApplication.xml для насмешки над DAO. Итак, как я могу использовать оба файла конфигурации xml одновременно?

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = SpringockitoContextLoader.class, locations = {"classpath*:/MockApplicationContext.xml"})
public class PayRollComponentFacadeIT {
    @Autowired
    IPayRollComponentFacade payRollComponentFacade;
    @ReplaceWithMock
    @Autowired
    IPayRollPersistenceManager payRollPersistenceManager;

Я включил макет контекста как @ContextConfiguration(loader = SpringockitoContextLoader.class, locations = {"classpath*:/MockApplicationContext.xml"})

Но я должен также включить контекст весны @ContextConfiguration(locations = {"classpath*:/testApplicationContext.xml"})

С уважением Раджиб

2 ответа

Решение

ContextConfiguration.locations является массивом, так что вы можете указать, какое местоположение вы хотите.

@ContextConfiguration(
       loader = SpringockitoContextLoader.class,
       locations = {"classpath*:/MockApplicationContext.xml",
                    "classpath*:/testApplicationContext.xml"}
)

КСТАТИ: (это только подсказка из моей памяти, я не знаю, если проблема все еще существует, или я сделал что-то не так) Давным-давно я заметил некоторые проблемы при использовании двух параметров местоположения, потому что это швы, что пружина создает два conexts (по одному на каждое место). Поэтому я использую один файл конфигурации, который inculde Это два обычных файла конфигурации. (см. /questions/29887342/kak-zastavit-spring-avtomaticheski-svyazat-testovyij-klass-integratsii-s-ispolzovaniem-neskolkih-kontekstov/29887354#29887354)

Springockito-аннотации позволяют вообще избежать необходимости дополнительного контекста.

Просто перечислите DAO для проверки в том же тесте:

@ReplaceWithMock
DAO dao;

Этот дао будет автоматически заменен в основном контексте приложения. Контроллер увидит осмеянный боб.

Другие вопросы по тегам