如何对多个功能进行junit测试

时间:2015-05-27 12:00:30

标签: java eclipse unit-testing junit

我正在为一个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。 任何人都可以告诉我我需要做什么,这样我就可以一起运行测试文件中的所有功能

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>();
}