我發現在運行多個gmock測試時使用和在內存數據庫中,我得到關於已經存在的表的錯誤。它似乎多次運行Spring上下文創建,儘管它只在給定的測試類中設置一次,作爲所有測試方法使用的字段。在Spring中使用GMock如何在多次測試中只設置一次spring context?
理想情況下,我想讓多個類重用相同的上下文,但即使使用單個GMockTestCase的多個方法重新創建spring上下文。
覆蓋Junit安裝方法沒有幫助。
我覺得這種行爲非直觀和不正確的,但可能有一些我不明白怎麼gmock或Groovy作品
class MyTest extends GMockTestCase {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring.test.xml")
def mockRequest = mock(RenderRequest)
def mockResponse = mock(RenderResponse)
void testHandleRequest() {
mockRequest.getAttribute('javax.portlet.userinfo').returns(userInfo)
mockRequest.getRemoteUser().returns(userName)
play {
def mav = mainController.handleRenderRequestInternal(mockRequest, mockResponse)
assertEquals userName, mav.model.un
一個解決辦法,我可以使用,但現在是不理想的是使用註釋技術和擴展彈簧測試類,像這樣:
@WithGMock
@ContextConfiguration(locations = ["classpath:spring.dev.xml"])
class MyTest extends AbstractTransactionalJUnit4SpringContextTests {
你可以添加一些代表性的代碼示例? – bbaja42