簡體   English   中英

沒有Mock的Spring MVC測試

[英]Spring MVC Testing without Mocking

好的,我來自Rails,要使其正常工作有些困難。

正確知道這是我從Spring框架中了解的內容(如果我錯了,請糾正我):

  1. 我正在使用Tomcat。 因此,基本上,它的工作是去到web.xml之后,然后從那里檢查所有配置文件以進行初始化並自動連接Bean等。

  2. 在我的示例中,我在web.xml上將上下文配置位置為application-config.xml

  3. 事實證明application-config.xml還有其他配置文件,這些文件將處理以下問題:

休眠:

<util:properties id="hibernatePropertiesConfigurer" location="classpath:hibernate.properties"/>

JSon Converter:

<import resource="classpath:json-converter.xml"/>

管理者( @Component )掃描程序:

<import resource="classpath:scanner-config.xml"/>

其中。 換句話說,這些工作正常,Web服務器啟動,經理( @Components )是@Controllers @Autowired@Controllers可以調用它們,將對象持久存儲在數據庫中,等等。

現在,我要測試,即運行JUnit測試。 我確實找到了許多有關如何模擬這些層(管理器,控制器)的示例,但我想嘗試一下真正的東西:

  • 測試將實例化@Controller
  • 測試將發布到@Controller對象
  • @Controller具有@Component@Bean的真實@Autowired (非@Bean版本)
  • @Component將保留一個@Entity
  • 而且,最重要的是,數據庫應該看到更改。 (我正在使用MySQL)
  • 然后,測試將使用@Component@Autowired實例,並查詢數據庫以確認發生了持久性。

Spring,JUnit測試完全有可能嗎?

如果要像這樣驗證整個堆棧的行為,則它不再是單元測試,而是集成測試。

如果您使用的是Maven,則可以在pre-integration-test階段使用Maven Jetty插件之類的項目將項目部署到嵌入式容器中。 然后在測試中,對本地主機上的服務器進行HTTP調用,並驗證您是否獲得了預期的響應。 然后,在post-integration-test階段,關閉Jetty服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM