【发布时间】:2017-02-07 04:16:07
【问题描述】:
目前,我正在使用 TestNG 并尝试为 操作元数据()方法。在该方法中,元数据由存储库提供。然后根据给定的联系人列表更新元数据。
我在编写操作 MetaData() 方法的测试用例时卡住了。
public class MetaData {
String email;
Map<String, Integer> count = new HashMap<>();
public void setEmail(String email) {
this.email = email;
}
public void updateCount(List<String> contact) {
// perform the calculation and update the count.
}
}
public class MetaDataHandler {
@Autowired
MetaDataRepository metaDataRepository;
public MetaData manipulateMetaData(String emailAddress, List<String> contact) {
MetaData metaData = metaDataRepository.findOneByEmail(emailAddress);
if (metaData == null) {
metaData = new MetaData();
metaData.setEmail(emailAddress);
}
metaData.updateCount(contact);
return metaData;
}
}
测试用例
@Mock
MetaDataRepository metaDataReporitory;
@InjectMocks
MetaDataHandler metaDataHandler = new MetaDataHandler();
@BeforeMethod
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testManipulateMetaData() {
List<String> contact = new ArrayList<>();
String emailAddress = "someone@gmail.com";
Mockito.when(metaDataReporitory.findOneByEmail(emailAddress)).thenReturn(null);
//Stuck Here
//Want to test manipulateMetaData() method
}
【问题讨论】:
-
这段代码看起来不对
metaData.updateCount(List<String> contact);应该是metaData.updateCount(contact); -
谢谢。现在我更正了这个问题。
-
你卡在哪里了?您正在寻找什么?
-
我首先模拟 metaDataRepository 以返回 null 值。然后从测试方法中调用操作MetaData() 方法。之后我不知道该怎么办?
-
请出示你的测试课
标签: java testing mockito testng powermockito