2015-06-01 96 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

相关问题