●程式說明--Android Unit Test
1.androidTest:要開android設備才可以測的=>要用到android元件(可以用模擬器也可以用實機測試)
2.test: 不用開android設備就可以測的 =>純java程式
(一)test
*建一個MyMath class
//建一個簡單的class做測試內容
public class MyMath {
public static int add(int x, int y) {
return x + y;
}
}
*建一個Test1 class
public class Test1 {
//一定要加@Test,說明是在測試
@Test
public void myTest()
{
//assert如果是false,就會中斷
//assertEquals,當兩個參數的值相等就代表測試成功
assertEquals(10, MyMath.add(3,7));
}
}
=>測試,到檔案按右鍵=>run
=>測試成功會是綠色的
=>測試失敗是紅色的
=>在整個測試檔上選整個專案測試,就會每個測試程式都run
(二)androidTest
=>測試新增的資料是否正確
//一定要加@RunWith,代表測試
@RunWith(AndroidJUnit4.class)
public class MyDAOTest1 {
@Test
public void AddandGetTest(){
//取得context就可以建立phoneDAODBImpl物件
Context appContext = InstrumentationRegistry.getTargetContext();
phoneDAODBImpl dao = new phoneDAODBImpl(appContext);
phone p = new phone();
p.name = "BBB";
p.tel = "123";
p.addr = "aabb";
dao.addOne(p);
phone p1 = dao.getOne(1);
assertEquals("AA",p1.name);
}
}
=>測試失敗的畫面
=>預期結果是AA但是真實結果為BBB
=>測試成功的畫面
//清除資料表以後重建一筆測試
@Test
public void clearAndAddOneDataAndGetTest()
{
Context appContext = InstrumentationRegistry.getTargetContext();
phoneDAODBImpl dao = new phoneDAODBImpl(appContext);
phone p = new phone();
p.name = "BBB";
p.tel = "123";
p.addr = "aabb";
//清除資料後再新增一筆測試,確保資料庫正確
dao.clearAll();
dao.addOne(p);
//取得資料庫的資料放到陣列中
phone pArray[] = dao.getList();
//取得第一筆資料中的name來測試
assertEquals("BBB", pArray[0].name);
}
//測試刪除
@Test
public void testDelete1(){
Context appContext = InstrumentationRegistry.getTargetContext();
phoneDAODBImpl dao = new phoneDAODBImpl(appContext);
phone p1=new phone("ccc","333","123456");
phone p2=new phone("ddd","444","123456");
dao.clearAll();
dao.addOne(p1);
dao.addOne(p2);
phone pArray[]=dao.getList();
//因為前面new c1時沒有給id,所以這邊設定id給c1
p1.id=pArray[0].id;
dao.delete(p1);
phone pArray2[]=dao.getList();
assertEquals("ddd",pArray2[0].name);
}
//測試更新
@Test
public void testUpdate(){
Context appContext = InstrumentationRegistry.getTargetContext();
phoneDAODBImpl dao = new phoneDAODBImpl(appContext);
phone p1=new phone("ccc","333","123456");
dao.clearAll();
dao.addOne(p1);
phone parray[]=dao.getList();
p1.id=parray[0].id;
p1.name="fff";
dao.update(p1);
phone parray2[]=dao.getList();
assertEquals("fff", parray2[0].name);
}
●程式參考(GitHub):Android Unit Test單元測試 (測試程式與DAO和SQLite的程式放在一起)
文章標籤
全站熱搜
留言列表