最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Assert.assertEquals()方法參數(shù)詳解

 更新時間:2021年12月18日 10:43:10   作者:俊墨客  
本文詳細(xì)講解了Assert.assertEquals()方法參數(shù),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

junit.framework包下的Assert提供了多個斷言方法. 主用于比較測試傳遞進去的兩個參數(shù).

Assert.assertEquals();及其重載方法:

  • 1. 如果兩者一致, 程序繼續(xù)往下運行.
  • 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);
}

可以看到里面調(diào)用了assertEquals(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類型. 注釋說, 會拋異常, 但這里沒有. 沒關(guān)系, 我們接著看里面調(diào)用: assertEquals(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語句, 判斷了兩者相等的情況: 引用(地址)相等或者內(nèi)容相等. 如果這兩種if情況都不命中, 那么表明1參和2參實際是不相等, 所以代碼會往下執(zhí)行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("如果打印本信息, 證明參數(shù)不相等", 10L, 10);

按照源碼分析, 我們可以把一個預(yù)期結(jié)果作為1參傳遞進去. 2參傳遞我們需要測試的方法. 然后執(zhí)行. 相等, 代碼繼續(xù)往下執(zhí)行, 不相等, 中斷執(zhí)行, 拋出異常信息!!!

略作一提:

Assert.assertSame(Object expected, Object actual)方法:

其比較的是引用地址是否相等, 并沒有對內(nèi)容進行比較:

/**
 * 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);
}

到此這篇關(guān)于Assert.assertEquals()方法參數(shù)詳解的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android學(xué)習(xí)筆記——Menu介紹(二)

    Android學(xué)習(xí)筆記——Menu介紹(二)

    這次將繼續(xù)上一篇文章沒有講完的Menu的學(xué)習(xí),上下文菜單(Context menu)和彈出菜單(Popup menu)
    2014-10-10
  • Android獲取其他應(yīng)用中的assets資源

    Android獲取其他應(yīng)用中的assets資源

    今天小編就為大家分享一篇關(guān)于Android獲取其他應(yīng)用中的assets資源,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Android?Room數(shù)據(jù)庫加密詳解

    Android?Room數(shù)據(jù)庫加密詳解

    這篇文章主要為大家詳細(xì)介紹了Android?Room數(shù)據(jù)庫加密,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Android 8.0安裝apk的實例代碼

    Android 8.0安裝apk的實例代碼

    本文給大家分享了Android 8.0安裝apk的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • Android使用Jni實現(xiàn)壓力鍋數(shù)據(jù)檢測效果示例

    Android使用Jni實現(xiàn)壓力鍋數(shù)據(jù)檢測效果示例

    這篇文章主要介紹了Android使用Jni實現(xiàn)壓力鍋數(shù)據(jù)檢測效果,涉及Android結(jié)合Jni實現(xiàn)進度條模擬壓力鍋數(shù)據(jù)監(jiān)測效果的相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • Android中RecyclerView嵌套滑動沖突解決的代碼片段

    Android中RecyclerView嵌套滑動沖突解決的代碼片段

    這篇文章主要為大家詳細(xì)介紹了Android中RecyclerView嵌套滑動沖突解決的代碼片段,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 詳解Android通過修改配置文件設(shè)置wifi密碼

    詳解Android通過修改配置文件設(shè)置wifi密碼

    這篇文章主要介紹了詳解Android通過修改配置文件設(shè)置wifi密碼的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Android 線程優(yōu)化知識點學(xué)習(xí)

    Android 線程優(yōu)化知識點學(xué)習(xí)

    這篇文章主要為大家介紹了Android線程優(yōu)化知識點學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Kotlin中的一些技巧與迂回操作分享

    Kotlin中的一些技巧與迂回操作分享

    這篇文章主要給大家介紹了關(guān)于Kotlin中的一些技巧與迂回操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用kotlin具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Android CameraManager類詳解

    Android CameraManager類詳解

    這篇文章主要為大家詳細(xì)介紹了Android CameraManager類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論

广宁县| 雷山县| 江陵县| 徐汇区| 平阳县| 金乡县| 松原市| 保德县| 兰西县| 彭阳县| 会宁县| 桓仁| 临泽县| 平果县| 蓬安县| 佛冈县| 德安县| 祁东县| 抚远县| 荔波县| 墨竹工卡县| 宜宾县| 红河县| 宜兰市| 信丰县| 尼玛县| 马山县| 忻州市| 新密市| 临朐县| 时尚| 离岛区| 文化| 辽阳县| 九台市| 东方市| 安义县| 嘉禾县| 台东市| 阆中市| 星座|