Assert.assertEquals 역할

14580 단어 Android도구 모음
junit.framework 패키지 아래의 Assert는 여러 개의 단언 방법을 제공합니다.주로 테스트에 전달된 두 파라미터를 비교하는 데 쓰인다.
Assert.assertEquals();및 그 중재 방법: 1.만약 둘이 일치한다면 프로그램은 계속 아래로 운행할 것이다.2. 만약 둘이 일치하지 않으면 테스트 방법을 중단하고 이상 정보AssertionFailedError를 던집니다.
소스 보기(Assert.)assertEquals(int expected, int actual)의 예:
/**
 * Asserts that two ints are equal.     int    
 */
static public void assertEquals(int expected, int actual) {
    assertEquals(null, expected, actual);
}

Assert Equals(String message, int expected, int actual) 메서드가 호출된 것을 볼 수 있습니다.
/**
 * Asserts that two ints are equal. If they are not
 * an AssertionFailedError is thrown with the given message.
 *         message    (AssertionFailedError)  ,        
 */
static public void assertEquals(String message, int expected, int actual) {
    assertEquals(message, Integer.valueOf(expected), Integer.valueOf(actual));
}

보시다시피 int 형식의 상자를 Integer 형식으로 봉합니다.주석에 의하면 이상을 던질 수 있지만, 여기에는 없다.괜찮습니다. 다음 중 호출 방법을 보십시오: assert Equals (String message, Object expected, Object actual) 방법:
/**
 * Asserts that two objects are equal. If they are not
 * an AssertionFailedError is thrown with the given message.
 *         message    (AssertionFailedError)  ,        (      Object  )
 */
static public void assertEquals(String message, Object expected, Object actual) {
    if (expected == null && actual == null) {
        return;
    }
    if (expected != null && expected.equals(actual)) {
        return;
    }
    failNotEquals(message, expected, actual);
}

두 개의if문장은 둘이 같은 상황을 판단했다. 인용(주소)이 같거나 내용이 같다.만약 이 두 가지if상황이 모두 명중하지 않는다면 1참과 2참은 실제적으로 같지 않기 때문에 코드는failNotEquals(String message, Object expected, Object actual) 방법을 아래로 실행하고 이 방법에서 이상을 던진다. 다음은 비교적 간단하다.
static public void failNotEquals(String message, Object expected, Object actual) {
    fail(format(message, expected, actual));
}

public static String format(String message, Object expected, Object actual) {
    String formatted = "";
    if (message != null && message.length() > 0) {
        formatted = message + " ";
    }
    return formatted + "expected: + expected + "> but was: + actual + ">";
}
/**
* Fails a test with the given message.
*/
static public void fail(String message) {
	if (message == null) {
	    throw new AssertionFailedError();
	}
	throw new AssertionFailedError(message);
}

이상에서 보듯이 최종적으로 fail(String message)이라는 방법으로 이상 정보를 던졌습니다!!
Assert.assertEquals() 사용 방법: 사용, 예제 코드:
Assert.assertEquals(true, arry.contains("hello"));
Assert.assertEquals(39991L, aa.getLong("key3", 0L));
Assert.assertEquals(true, bb.getBoolean("key4", false));
Assert.assertEquals(5.3f, cc.getFloat("key5", 0.f));
Assert.assertEquals(99, dd.getInt("key6", 1));
Assert.assertEquals("       ,        ", 10L, 10);

원본 분석에 따라 우리는 예상한 결과를 1참으로 전달할 수 있다.2 테스트가 필요한 방법을 전달합니다.그리고 집행한다.같음, 코드는 계속 아래로 실행, 같지 않음, 실행 중단, 이상 정보 던지기!!!
요약: Assert.assertSame(Object expected, Object actual) 메서드: 참조 주소가 같은지 또는 컨텐트를 비교하지 않고 원본 코드를 봅니다.
/**
 * Asserts that two objects refer to the same object. If they are not
 * the same an AssertionFailedError is thrown.
 */
static public void assertSame(Object expected, Object actual) {
    assertSame(null, expected, actual);
}
/**
 * Asserts that two objects refer to the same object. If they are not
 * an AssertionFailedError is thrown with the given message.
 */
static public void assertSame(String message, Object expected, Object actual) {
    if (expected == actual) {
        return;
    }
    failNotSame(message, expected, actual);
}

좋은 웹페이지 즐겨찾기