2015-06-01 102 views
1

我試圖運行這個單元測試,我目前在Java上使用Xtend以輕鬆讀取代碼。 該測試由必須驗證用戶以便將其添加到當前存儲庫的管理員組成。我想要的是管理一個模擬對象,以驗證用戶是否具有正確發送方法「generateProfile」,其執行以下操作initializeError單元測試在Xtend中使用Mockito模擬對象

class User{ 
 
    @Accessors 
 
    repositoryAdministrator admin 
 
    
 
    def generateProfile{ 
 
    admin.add(this) 
 
    }
Add方法如下:

class repositoryAdministrator{ 
 
    @Accessors List<User> objects 
 
    @Accessors List<User> usersToValidate 
 
    
 
    def add(User user){ 
 
    usersToValidate.add(user) 
 
    }

這是測試我想用的lib的Mockito

運行

@RunWith(MockitoJUnitRunner) 
 
class MockitoTests{ 
 

 
val lala = new User() 
 
    
 
@Mock 
 
repositoryAdministrator fakeAdmin 
 

 
@Before 
 
def void init(){ 
 
\t MockitoAnnotations.initMocks(this) 
 
    } 
 

 
@Test 
 
def validationTest(){ 
 
\t \t 
 
\t lala.admin = fakeAdmin 
 
\t lala.generateProfile 
 
\t 
 
\t Mockito.verify(fakeAdmin).add(lala) 
 
    } 
 
}

我已經正確的庫進口的,我工作的一個Eclipse IDE,當我運行測試我不斷獲取initializationError。

如何正確使用Mockito初始化模擬對象?對不起,我的英語

回答

0

我已經發現問題了,使用Xtend進行測試並不需要定義返回類型......直到您在Maven項目中實現Mockito依賴關係。有沒有在管理員的add方法有問題,它返回一個布爾變量,它應該返回void,解決它的方法是:

@RunWith(MockitoJUnitRunner) 
 
class MockitoTests{ 
 

 
val lala = new User() 
 
    
 
@Mock 
 
repositoryAdministrator fakeAdmin 
 

 
@Before 
 
def void init(){ 
 
\t MockitoAnnotations.initMocks(this) 
 
    } 
 

 
@Test 
 
def void validationTest(){ 
 
\t \t 
 
\t lala.admin = fakeAdmin 
 
\t lala.generateProfile 
 
\t 
 
\t Mockito.verify(fakeAdmin).add(lala) 
 
    } 
 
}

我只定義在返回類型測試,這應該在這種情況下void

相關問題