[英]Groovy Spock How to Wire or Mock Spring Autowired Interface
我有這樣的課
public abstract class JobProcessor {
@Autowired
ApplicationContext applicationContext;
protected void startProcess() {
MyThread myThread= (MyThread) applicationContext.getBean("myThread");
myThread.setConversionObject(new MyObject());
...
}
}
我想為JobProcessor編寫單元測試。 JobProcessor是一個抽象類。它與作為接口的ApplicationContext自動關聯。
我的測試是這樣的
@SpringBootTest(classes = JobProcessorApplication.class)
@ContextConfiguration(locations = "classpath:InjectionContext.xml")
@TestPropertySource(locations = "classpath:test.properties")
@Import(UnitTestConfiguration)
class JobProcessorSpec extends Specification {
class JobProcessorChild extends JobProcessor {
@Override
boolean processRequest() {
return false
}
def "Should start process"() {
given:
def jobProcessorChild = new JobProcessorChild()
when:
jobProcessorChild.startProcess()
then:
noExceptionThrown()
}
}
}
由於applicationContext的nullpoint錯誤,我的測試總是失敗。有人可以指導我如何在此處正確編寫單元測試嗎?
單元測試應在不構建applicationContext的情況下運行。 您必須將其替換為模擬對象,然后將其傳遞給測試中的對象的構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.