把項(xiàng)目開(kāi)發(fā)中的技巧記錄下來(lái)友鼻,歡迎大家留言傻昙,幫忙補(bǔ)充。
一彩扔、測(cè)試:
代碼寫完需要跑下軟件看看有沒(méi)有達(dá)到預(yù)定的效果妆档,樓主遇到的項(xiàng)目編譯、安裝攻人、啟動(dòng)一次最長(zhǎng)的耗時(shí)30min陈瘦,如果改動(dòng)大跑跑還算值得盹沈,要是改幾行代碼就跑一次,一天也干不了什么活须板,還有就是寫的功能在安裝之前要盡量保證正確,這就需要在重新安裝的時(shí)候進(jìn)行測(cè)試兢卵。
測(cè)試的好處:提高開(kāi)發(fā)效率习瑰、提高代碼質(zhì)量。
方法一:
android studio3.0.1 項(xiàng)目建好后就有測(cè)試模塊如圖:
test 目錄下用于測(cè)試java代碼秽荤,不需要手機(jī)和模擬器 直接電腦上就可以測(cè)甜奄;
androidTest下測(cè)試含有Android的代碼,需要手機(jī)或模擬器 窃款。
test 測(cè)試:例如對(duì)SortUtils中冒泡排序bubbleSort(int[] datas)測(cè)試
androidTest下測(cè)試:
開(kāi)發(fā)中經(jīng)常會(huì)調(diào)接口课兄,這里結(jié)合主流的mvp設(shè)計(jì)模式 還有RXjava2? ? retrofit2測(cè)試一個(gè)登陸接口
現(xiàn)在測(cè)試PasswordLoginPresenter 中 login方法
從測(cè)試結(jié)果看并沒(méi)有輸出接口返回的信息,這是有原因的晨继,我的理解是androidTest 運(yùn)行?就是從頭到尾執(zhí)行完就結(jié)束了Rxjava在不同線程? 而且還有網(wǎng)絡(luò)請(qǐng)求等結(jié)果返回的時(shí)候androidTest 已經(jīng)不存在了烟阐,所以沒(méi)有結(jié)果,這里有兩個(gè)方法可以看到輸出:一紊扬、 把《跑測(cè)試》途中注釋的中斷放開(kāi)曲饱,時(shí)間足夠常保證看到結(jié)果;二珠月、用一個(gè)Rxjava2的線程調(diào)度工具扩淀,也可以,工具如下:
public class Rx2Tool {
public static void asyncToSync() {
RxJavaPlugins.reset();
RxJavaPlugins.setIoSchedulerHandler(new Function(){
public Scheduler apply(Scheduler scheduler)throws Exception {
return Schedulers.trampoline();
}
});
}
}
用法是:在ExampleInstrumentedTest加
@Before
? ? public void setUp() {
? ? ? Rx2Tool.asyncToSync();
}
思考問(wèn)題:這個(gè)mvp比較簡(jiǎn)單啤挎,view直接傳的null,如果要是模擬數(shù)據(jù)驻谆,還有多次請(qǐng)求等怎么辦,這里介紹一些豐富的資料供讀者提高
https://github.com/simplezhli/AndroidUT
Rxjava1?https://segmentfault.com/a/1190000007207585
方法二:
還有一個(gè)神器Instant Run:http://blog.csdn.net/guolin_blog/article/details/51271369庆聘,不過(guò)有一次我修改了View跑起來(lái)沒(méi)有變化? 嚇的我沒(méi)怎么用了胜臊,比較早的時(shí)候 ,現(xiàn)在更新了伙判,還可以象对。