<分区>
我有两个函数 addKeywords 和 search,它们的返回类型为 void,而 search 函数将结果打印到控制台。 这是代码
void addKeywords(String video)throws IOException{
InputStreamReader ip = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ip);
Integer previousVal=0;
if(!videoKeyword.containsKey(video) && videoNames.contains(video)){
videoKeyword.put(video,new HashSet<String>());
}
else if(!videoNames.contains(video)){
System.out.println("Video is not a part of lookup");
}
System.out.println("Enter keywords for video");
String keyword =br.readLine();
if(!keywordLength.containsKey(video))
keywordLength.put(video, 0);
if((keywordLength.get(video)+keyword.length())<500){
videoKeyword.get(video).add(keyword);
previousVal=keywordLength.get(video);
keywordLength.put(video, previousVal+keyword.length());
}
else{
System.out.println("Maximum length exceeded for video "+ video);
}
if(!kewordVideo.containsKey(keyword)){
kewordVideo.put(keyword,new HashSet<String>());
}
kewordVideo.get(keyword).add(video);
}
void search(String searchKey){
for (Entry<String, HashSet<String>> entry : videoKeyword.entrySet()) {
for (String s : entry.getValue()) {
if (s.startsWith(searchKey)) {
System.out.println(searchKey+" is mapped to "+entry.getKey());
break;
}
}
}
}
我写过junit测试
public class MyUnitTest extends CultureMachineAssignment {
CultureMachineAssignment testObj =new CultureMachineAssignment();
testObj.insertDataIntoSet();
testObj.addkeywords("video1");
@Test
public void testVideo() {
assertEquals("video1", testObj.search("abcd"));
}
}
我遇到以下错误
Assert 类型中的方法 assertEquals(Object, Object) 不适用于参数 (字符串,无效)
- 标记“video1”的语法错误,删除 这个 token
- token 语法错误,放错地方 构造
我不确定这是否是为具有 void 返回类型的函数编写 junit 测试用例并将输出打印到控制台的正确方法。 有人可以告诉我正确的代码吗?