Ran*_*ron 4 testing spring unit-testing annotations autowired
您将如何进行集成测试,该应用程序是注释配置和组件扫描的Spring应用程序,并且根本没有XML配置?我需要用测试组件替换生产组件,而不是实际使用xml配置或反射注入所有@autowired部件.
例:
interface A {...}
@Component
class AImpl implements A {
...
}
interface B {...}
@Component
class BImpl implements B {
@Autowired A a;
...
}
interface C {...}
class CImpl implements C {
@Autowired B b;
...
}
Run Code Online (Sandbox Code Playgroud)
然后在我的测试中我想使用ATestImpl,但我只能访问C(集成测试C).
你会怎么做呢?
Tom*_*icz 10
利用@Primary注释:
@Service
@Primary
public class TestA implements A {
//...
}
Run Code Online (Sandbox Code Playgroud)
如果有多个bean实现A,Spring将更喜欢使用注释的bean @Primary.如果您将TestA类放入/src/test/java,它将仅在测试执行期间被拾取,在正常上下文启动时Spring将不会看到TestA并仅使用avaialble AImpl.
| 归档时间: |
|
| 查看次数: |
6363 次 |
| 最近记录: |