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

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

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

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

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

  • 1. 如果兩者一致, 程序繼續(xù)往下運(yùn)行.
  • 2. 如果兩者不一致, 中斷測(cè)試方法, 拋出異常信息 AssertionFailedError .

?以Assert.assertEquals(int expected, int actual)為例:

/**
 * Asserts that two ints are equal. 斷言兩個(gè)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類型. 注釋說(shuō), 會(huì)拋異常, 但這里沒(méi)有. 沒(méi)關(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對(duì)象)
 */
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);
}

兩個(gè)if語(yǔ)句, 判斷了兩者相等的情況: 引用(地址)相等或者內(nèi)容相等. 如果這兩種if情況都不命中, 那么表明1參和2參實(shí)際是不相等, 所以代碼會(huì)往下執(zhí)行failNotEquals(String message, Object expected, Object actual)方法,并在此方法中拋出異常, 接下來(lái)就比較簡(jiǎn)單了:

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)這個(gè)方法拋出異常信息!!

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);

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

略作一提:

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

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

/**
 * 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ù)詳解的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

    Android 8.0安裝apk的實(shí)例代碼

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

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

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

    Android中RecyclerView嵌套滑動(dòng)沖突解決的代碼片段

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

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

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

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

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

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

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

    Android CameraManager類詳解

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

最新評(píng)論

黔江区| 徐州市| 阳东县| 武功县| 从化市| 丁青县| 平湖市| 南江县| 亳州市| 长子县| 东阳市| 兰坪| 通化市| 连城县| 宁远县| 松滋市| 高州市| 肥城市| 庆安县| 乐陵市| 农安县| 台北市| 高台县| 西吉县| 彭州市| 通山县| 宁安市| 汤原县| 阿克苏市| 澳门| 鄱阳县| 隆回县| 南和县| 镇远县| 酒泉市| 固始县| 黄骅市| 高安市| 怀安县| 郑州市| 汶川县|