引入如下的mock jar包:
org.mockito
mockito-core
2.23.0
test
org.powermock
powermock-module-junit4
2.0.0-rc.3
test
org.powermock
powermock-api-mockito2
2.0.0-rc.3
test
junit
junit
4.11
test
普通mock: mock引數傳遞的物件
// 測試類
public class flysundemo
}public class flysunmocktest
}注:普通mock不需要加@runwith和@preparefortest註解。
mock方法內部new出來的物件
// 測試**
public class flysundemo
}@runwith(powermockrunner.class)
@preparefortest(flysundemo.class)
public class flysunmocktest catch (exception e) }}
注:當使用powermockito.whennew方法時,必須加註解@preparefortest和@runwith。註解@preparefortest裡寫的類是需要mock的new物件**所在的類。
mock普通物件的final方法
//測試**
public class classdependency
}public class flysundemo
}@runwith(powermockrunner.class)
@preparefortest(classdependency.class)
public class flysunmocktest
}注: 當需要mock final方法的時候,必須加註解@preparefortest和@runwith。註解@preparefortest裡寫的類是final方法所在的類。
mock普通類的靜態方法
// 測試**
public class classdependency
}public class flysundemo
}@runwith(powermockrunner.class)
@preparefortest(classdependency.class)
public class flysunmocktest
}注:當需要mock靜態方法的時候,必須加註解@preparefortest和@runwith。註解@preparefortest裡寫的類是靜態方法所在的類。
mock 私有方法
// 測試**
public class flysundemo
private boolean isalive()
@runwith(powermockrunner.class)
@preparefortest(flysundemo.class)
public class flysunmocktest
}注:註解裡寫的類是私有方法所在的類。
mock系統類的靜態和final方法 :
// 測試**
public class flysundemo
}@runwith(powermockrunner.class)
@preparefortest(flysundemo.class)
public class flysunmocktest
}注:和mock普通物件的靜態方法、final方法一樣
單元測試中PowerMock常用方法
在進行單元測試時,為了測試乙個簡單的方法,往往需要構造一堆複雜的相當物件,還有的情況是有的方法沒有返回值,直接在函式內做了某些事情,這時如果用黑盒測試,你無法通過輸入輸出判斷方法是否正確。所以,通常都會通過mock物件的方法來進行unit test.有機會再總結軟體測試一些理論知識,今天先把這幾天寫...
單元測試案例模板
專案組裡面突然說,開發人員要進行單元測試,並且要編寫單元測試報告,然後才能放到測試環境,讓測試去進行內部測試,否則連測試環境都不能上,作為一名開發,對自己開發的功能進行單元測試是十分有必要的。千萬不要以為測試就全是測試人員的工作,特別是自己開發的功能必須要自己測試過很多次之後,在讓測試人員來測試,不...
unittest單元測試案例 一
實現登陸功能的單元測試 驗證引數有效性函式 def login check username,password param username 登陸使用者名稱 param password 登陸密碼 return if 6 len password 18 if username admin and p...