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;
Этот дао будет автоматически заменен в основном контексте приложения. Контроллер увидит осмеянный боб.