android中單元測試中的斷言assert的使用與擴充

來源:互聯網
上載者:User

標籤:android   單元測試   斷言 assert   java   

首先看一組對比,比如說我們要測試的結果是一個Linearlaout  

  • AssertJ Android:

    assertThat(layout).isVisible()    .isVertical()    .hasChildCount(4)    .hasShowDividers(SHOW_DIVIDERS_MIDDLE);
  • Regular JUnit:

    assertEquals(View.VISIBLE, layout.getVisibility());assertEquals(VERTICAL, layout.getOrientation());assertEquals(4, layout.getChildCount());assertEquals(SHOW_DIVIDERS_MIDDLE, layout.getShowDividers());
  • Regular AssertJ:

    assertThat(layout.getVisibility()).isEqualTo(View.VISIBLE);assertThat(layout.getOrientation()).isEqualTo(VERTICAL);assertThat(layout.getChildCount()).isEqualTo(4);assertThat(layout.getShowDividers()).isEqualTo(SHOW_DIVIDERS_MIDDLE);
從形式上,使用上更加方便。

從輸出結果上看,輸出結果更加直接可見。

  • AssertJ Android:     Expected visibility <gone> but was <invisible>.

  • Regular JUnit          Expected:<[8]> but was:<[4]>

  • Regular AssertJ:     Expected: <8> but was: <4>

所以接下來我們來看看  Assert Android如何來使用。1首先寫一個待測試的資料結構 public class Draft{      private String id;//草稿的唯一標識id 
      private String uid ;//發送帳號uid,以區別不同帳號的草稿
      private int type;//儲存的類型
      private String displayedTitle;//展示標題內容
}2 \首先我們來自訂一個斷言類:   public class DraftAssert extends AbstractAssert<DraftAssert ,Draft>{      public DraftAssert (Draft draft){       super(draft,DraftAssert.class);}}      public static DraftAssert  assertThat(Draft draft){      return new DraftAssert (draft);}   public DraftAssert  hasDisplayedName(String name){      isNotNull();      if (!draft.getDisplayedTitle().equals(name)){      failWithMessage(("Expected character‘s name to be <%s> but was <%s>", name,draft.getDisplayedTitle());)      return this;}}3、使用的時候     DraftAssert.assertThat(draft).hasDisplayedName("@羅浩");     如果匯入DraftAssert.assertThat靜態匯入的話,你還可以直接使用     assertThat(draft).hasDisplayedName("@羅浩");


android中單元測試中的斷言assert的使用與擴充

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.