引言
什么叫断言?断言起到了什么作用?怎样使用断言?
正文
本文中示例目录结构
1、被测试类的编写;
ClassToBeTested.java新增加两个方法,代码如下
public class ClassToBeTested {
public int add(int a, int b){
return a+b;
}
public String addString(String a, String b){
return a+" "+b;
}
public int[] getArray(){
int[] arrayExample = {1, 2, 3, 4};
return arrayExample;
}
}
2、测试类测试方法脚本的编写;
测试类TestAssert.java中的测试方法分别对被测试类中的三个方法进行测试。
public class TestAssert {
@Test
public void testIntAdd(){
System.out.println("测试两个int类的和是否正确");
ClassToBeTested test = new ClassToBeTested();
int result = test.add(2, 4);
Assert.assertEquals(result, 6);
}
@Test
public void testStringAdd(){
System.out.println("测试字符串的连接与期望的字符串是否一致");
String expectedString = "Hello World";
ClassToBeTested test = new ClassToBeTested();
String result = test.addString("Hello", "World");
Assert.assertEquals(result, expectedString);
}
@Test
public void testArray(){
System.out.println("比较两个数组是否相等");
int[] expectedArray = {1, 2, 3, 4};
ClassToBeTested test = new ClassToBeTested();
int[] result = test.getArray();
Assert.assertEquals(result, expectedArray);
System.out.println("这是比较两个数组是否成功断言后的输出语句");
}
}
3、执行测试类方法。
执行的结果
可以看到上述的执行过程是按照方法名首字母顺序执行。
常用的断言
Assert为TestNG中的断言类:
1、Assert.assertTrue();
assertTrue()如果实际输出的结果是false,测试不通过,并停止执行。
2、Assert.assertFalse();
assertFalse()如果实际输出的结果是true,测试不通过,并停止执行。
3、Assert.assertEquals()
assertEquals()如果值不等,就会停止执行,测试不通过。如果值相等就会继续执行。
assertEquals()方法包含很多不同参数类型的重载方法。
TestNG执行失败了,该失败的测试方法中后面的语句将会停止执行,但是其他的测试方法不受影响,可以继续执行。
我们可以通过修改测试类TestAssert.java中的testArray()方法来验证。
@Test
public void testArray(){
System.out.println("比较两个数组是否相等");
int[] expectedArray = {1, 2, 3};
ClassToBeTested test = new ClassToBeTested();
int[] result = test.getArray();
Assert.assertEquals(result, expectedArray);
System.out.println("这是比较两个数组是否成功断言后的输出语句");
}
上述代码中,int[] expectedArray = {1, 2, 3, 4}; 修改为 int[] expectedArray = {1, 2, 3};,可以得知 Assert.assertEquals(result, expectedArray);断言失败。
此时的执行结果如下:
三人行,必有我师焉。欢迎留言讨论。