我正在为一个java应用程序编写Junit测试用例。 如果我单独运行测试功能,它运行正常。 当我试图将它们一起运行时,它运行不正常
这是JUnit代码
public class CultureMachineTestCases{
CultureMachineAssignment testObj=new CultureMachineAssignment ();
HashSet<String> result =new HashSet<String>();
String answer,answer1;
int flagVal;
@Before
public void init() throws IOException{
testObj.insertDataIntoSet();
testObj.addKeywords("video1");
}
@Test
public void testVideo() throws IOException {
result=testObj.search("abcd");
answer=result.toString();
answer1=answer.replaceAll("[^a-z0-9]","");
assertEquals("video1", answer1);
}
@Before
public void initMethod() throws IOException{
testObj.insertDataIntoSet();
testObj.addKeywords("video2");
}
@Test
public void testLenth() throws IOException{
flagVal=testObj.flag;
assertEquals(1, flagVal);
}
}
此文件在CultureMachineAssignment文件中设置为1。 任何人都可以告诉我我需要做什么,这样我就可以一起运行测试文件中的所有功能
答案 0 :(得分:3)
@Before在每个测试方法之前调用带注释的方法(init())。你应该只有一个用@Before注释的方法,不要混淆。
您在init()中实现的代码应移至testVideo(),initMethod()中的代码应移至testLength()。
你的init方法看起来应该是这样,以确保测试类状态对于所有测试都是相同的:
@Before
public void init(){
answer = null;
answer1 = null;
flagVal = -1;
result = new HashSet<String>();
}