为if,loop和exception编写junit测试用例的指南

时间:2012-10-01 04:41:50

标签: junit

我是Junit的新手。我想为if条件,循环编写测试用例。

我们是否有任何指导方针或程序来编写if,loop条件的测试用例? 任何人都可以用一个例子来解释吗?

IF Age < 18 THEN WHILE Age <> 18

  DO ResultResult = Result +1 AgeAge = Age +1 END
  DO Print “You can start driving in {Result} years” 

ELSE 

 Print “You can start driving now!” 

ENDIF 

2 个答案:

答案 0 :(得分:2)

您希望代码应该能够处理的每个主要方案都有一个测试用例。对于“if”语句,通常有两种情况,尽管您可能包含第二种情况,即两者的“边界”。使用循环,您可能希望包含多次运行循环的情况,以及根本不运行循环的情况。

在您的特定示例中,我将编写三个测试用例 - 一个年龄小于18,一个年龄为18,一个年龄超过18岁。在JUnit中,每个测试用例都是单独的测试类中的方法。每个测试方法都应运行您正在测试的代码,在特定场景中,然后声明结果是正确的。

最后,您需要考虑调用每种测试方法的内容。我强烈建议使用一个句子来表明您正在测试哪种情况,以及您希望发生什么。有些人喜欢用“test”这个词开始他们的测试方法名称;但我的经验是,这往往会引起人们对你试图测试的条件的注意力,并引起人们对你正在测试的特定方法或功能的关注,并且你倾向于得到较低质量的测试结果。对于您的示例,我会将测试方法称为这样。

public void canStartDrivingIfAgeOver18()
public void canStartDrivingIfAgeEquals18()
public void numberOfYearsRemainingIsShownIfAgeUnder18()

答案 1 :(得分:0)

从我对在junit中编写java的理解,我们习惯于在不同的块中创建源代码是常规代码,并用于将值作为args传递给测试用例中的函数,因此值将进入块语句,并传递测试用例。

例如,通过假设为functionName(int age),您将变量作为年龄,为了测试,您应该将测试用例中的整数作为functionName(18)传递,它将进入语句并显示状态测试用例。为测试类创建函数的测试用例

UseClass classObj=new UseClass();// it should be your class

    @Test
      public void testValidateAge() {
          classObj.validateAge("20");
          assertEquals(200,"");
   }

如果我错了,请纠正我。