[SPRING] JUnit 테스트 (컨테이너 외부)에서 TransactionManager를 조롱하려면 어떻게해야합니까?
SPRINGJUnit 테스트 (컨테이너 외부)에서 TransactionManager를 조롱하려면 어떻게해야합니까?
Spring 3.1.0.RELEASE, JUnit 4.8.1을 사용하고 궁극적으로 내 애플리케이션을 JBoss 4.2 서버에 배포하고 있습니다. 내 단위 테스트 설정의 일환으로, 내 봄 테스트 응용 프로그램 컨텍스트 에서이 ...
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransactionName">
<value>UserTransaction</value>
</property>
</bean>
물론, JNDI 이름 인 "UserTransaction"에 바인딩 된 것이 없기 때문에 지금은 실패합니다. 트랜잭션 관리자를 어떻게 조롱합니까? org.mockejb 프레임 워크를 사용하고 있지만 적절한 프레임 워크를 열어 두었습니다.
해결법
-
==============================
1.우리는 단순히 트랜잭션 관리자를위한 빈 구현을 생성하고이 구현이 단위 테스트에서 사용되는 스프링 컨텍스트에서 사용되는지 확인합니다
우리는 단순히 트랜잭션 관리자를위한 빈 구현을 생성하고이 구현이 단위 테스트에서 사용되는 스프링 컨텍스트에서 사용되는지 확인합니다
package sample; import org.springframework.stereotype.Service; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionException; import org.springframework.transaction.TransactionStatus; public class MockedTransactionManager implements PlatformTransactionManager { @Override public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException { return null; } @Override public void commit(TransactionStatus status) throws TransactionException { } @Override public void rollback(TransactionStatus status) throws TransactionException { } }
.. 그리고 spring-xml 파일에 다음과 같이 보입니다.
<bean id="transactionManager" class="sample.MockedTransactionManager"/>
from https://stackoverflow.com/questions/11783283/how-do-i-mock-a-transactionmanager-in-a-junit-test-outside-of-the-container by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트로 Gradle.build 버전 가져 오기 (0) | 2019.04.16 |
---|---|
[SPRING] Spring restTemplate은 raw json string을 얻는다. (0) | 2019.04.16 |
[SPRING] SpringBoot - UTF-8은 messages.properties에서 작동하지 않습니다. (0) | 2019.04.16 |
[SPRING] 팩토리 클래스에 의해 생성 된 객체에 대한 모의 객체 삽입 (0) | 2019.04.16 |
[SPRING] @RequestBody가 null 값을 받고 있습니다. (0) | 2019.04.16 |