我正在研究Spring應用程序(Spring 3.0)和以下分層體系結構,即Controller -> Service -> DAO layers
。Junit測試Spring服務和DAO層
我想寫服務和DAO層的單元測試用例,使用Junit。
我查了春季官方網站,也嘗試了很多其他網站,但無法弄清楚一個簡單而簡單的方法。
任何人都可以提供一些有用的資源嗎?
編輯:
貌似Mockito是不錯的選擇。在Spring中使用它的任何好鏈接。
謝謝Alex建議。
我正在研究Spring應用程序(Spring 3.0)和以下分層體系結構,即Controller -> Service -> DAO layers
。Junit測試Spring服務和DAO層
我想寫服務和DAO層的單元測試用例,使用Junit。
我查了春季官方網站,也嘗試了很多其他網站,但無法弄清楚一個簡單而簡單的方法。
任何人都可以提供一些有用的資源嗎?
編輯:
貌似Mockito是不錯的選擇。在Spring中使用它的任何好鏈接。
謝謝Alex建議。
不知道很多有關的資源,但它並不難,如果你有你的DAO +彈簧設定很好做。您需要以下內容:
表示JUNIT依賴關係。與Maven,這樣的事情:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
測試類,其中放置的src/test/java下里面:
@TransactionConfiguration(defaultRollback = true)
@ContextConfiguration({ "classpath:test-spring-context.xml" })
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
public class SomeTests {
// ...
}
爲您的春季設置上下文文件中引用你的DAO數據源放在裏面SRC /測試/資源。 某處在您的測試彈簧的context.xml:
<import resource="datasource-test.xml" />
現在比如在Eclipse中,您可以運行該項目的JUnit測試。
需要更多的細節?此解決方案是否適用?
小心。鏈接「Mocking服務層」現在導致惡意頁面。 – Cenobyte321
@ Cenobyte321謝謝,鏈接已刪除。 – xyz
如果您使用休眠和彈簧啓動,爲什麼不在開始測試時將內存數據庫中的H2配置爲已初始化?然後在你的測試類上使用Annotation SpringBootTest AutoConfigureTestEntityManager Transactional,只需Autowired你的dao,你就可以真正地測試它,而不會模擬。更好地,你可以使用MockMvc並從控制器測試你的整個webservice(所以我想你控制器使用服務,使用dao) – amdev