Alan Lee
07/10/2018, 9:44 PM@VisibleForTesting
annotation to assign mocks to variables directly but I find injecting mocks via the constructor is easier to read and clarify which objects needs to be mocked.snowe
07/10/2018, 9:54 PMAlan Lee
07/10/2018, 10:17 PMsnowe
07/10/2018, 10:32 PMAlan Lee
07/10/2018, 10:32 PMclass OtherClass(var s: String)
class BeingTested {
lateinit var otherClass: OtherClass
init {
if(!::otherClass.isInitialized)
otherClass = OtherClass("normal")
}
constructor()
constructor(other: OtherClass) {
this.otherClass = other
}
}
var normal = BeingTested()
var mocked = BeingTested(other = OtherClass(("mocked")))
print(normal.otherClass.s)
print(mocked.otherClass.s)
Alan Lee
07/10/2018, 10:33 PMAlan Lee
07/10/2018, 10:33 PMsnowe
07/10/2018, 10:34 PMAlan Lee
07/10/2018, 10:36 PMAlan Lee
07/10/2018, 10:37 PMclass OtherClass(var s: String)
class BeingTested(var otherClass: OtherClass = OtherClass("normal")) {
}
var normal = BeingTested()
var mocked = BeingTested(otherClass = OtherClass(("mocked")))
print(normal.otherClass.s)
print(mocked.otherClass.s
Alan Lee
07/10/2018, 10:37 PMAlan Lee
07/10/2018, 10:39 PMsnowe
07/10/2018, 10:40 PMsnowe
07/10/2018, 10:41 PMsnowe
07/10/2018, 10:41 PMsnowe
07/10/2018, 10:41 PMsnowe
07/10/2018, 10:42 PMAlan Lee
07/10/2018, 10:42 PMAlan Lee
07/10/2018, 10:43 PMsnowe
07/10/2018, 10:43 PMsnowe
07/10/2018, 10:43 PMAlan Lee
07/10/2018, 10:45 PMsnowe
07/10/2018, 10:46 PMsnowe
07/10/2018, 10:47 PMsnowe
07/10/2018, 10:47 PMAlan Lee
07/10/2018, 10:47 PMsnowe
07/10/2018, 10:48 PMsnowe
07/10/2018, 10:49 PMAlan Lee
07/10/2018, 10:50 PMsnowe
07/10/2018, 10:52 PM