2
我在課堂斯威夫特單元測試模擬類的靜態方法
class A {
static func myStaticMethod() -> B {
return B()
}
}
class B {
func getTitle() -> String {
// some functionality here
}
}
一個靜態方法在我的類的方法,我想測試我使用它像:
func someBoolFunc() -> Bool {
var b = A.myStaticMethod()
if (b.getTitle() = 「hello」) {
return true
}
return false
}
如何編寫模擬類這個......我想:
class MockA: A {
var myTitle:String
// this seems incorrect, because i didn't override static function
func myStaticMethod() -> MockB {
var b = MockB()
b.title = myTitle
return b
}
}
class MockB: B {
var myTitle:String
func getTitle() -> String {
return myTitle
}
}
而且在測試中,我想用這樣的:
func testExample() {
A = MockA
MockA.title = "My title"
// And now this func should use my MockA instead of A
someBoolFunc()
}
但當然這只是在理論上:(