JUnit Assertsame示例
时间:2020-02-23 14:41:32 来源:igfitidea点击:
JUNIT 5的org.junit.jupiter.Assertions类提供了不同的静态断言方法来编写测试用例。
请注意,在JUnit 4或者JUnit 3的情况下,我们需要使用JUnit的org.junit.assert类来使用Assertnull方法来声明。
断言.Assertsame()检查预期和实际对象是否参考相同对象。
如果两者都不引用相同的对象,它将通过AsserTerror。
public static void assertSame(Object expected,Object actual) public static void assertSame(Object expected,Object actual,String message) public static void assertSame(Object expected,Object actual,Supplier messageSupplier)
这是一个简单的例子
package org.igi.theitroad;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class AssertSameTest {
/*
* Examples for each overloaded methods of assertSame
*/
//public static void assertSame(Object expected, Object actual)
@Test
public void test1(){
String str1="Netherlands";
String str2="Netherlands";
Assertions.assertSame(str1,str2);
}
//public static void assertSame(Object expected, Object actual, String message)
@Test
public void test2(){
String str1=new String("Netherlands");
String str2=new String("Netherlands");
Assertions.assertSame(str1,str2,"str1 and str2 do not refer to same object");
}
//public static void assertSame(Object expected, Object actual, Supplier<String> messageSupplier)
@Test
public void test3(){
String str1=new String("Netherlands");
String str2=str1;
Assertions.assertSame(str1,str2,() -> "str1 and str2 do not refer to same object");
}
}
运行上面的TestCase时,我们将得到以下输出:
让我们了解每个测试用例的输出:
test1 - 通过
作为str1和str2指的是相同的字符串文字,这个testcase将通过。
如果我们与此混淆,请参阅串面试问题。
test2 - 失败
由于str1和str2都指的是两个不同的新字符串对象,此测试用例将失败。
test3 - 通过
由于str1引用新对象和str2,请参阅相同的字符串对象(str2 = str1),此测试用例将通过。

