假设我有以下代码:
func reset() {
initializeAnythingElse() {
// AnythingElse
}
initializeHomeData() {
// HomeData
}
}
func initializeHomeData(callback: @escaping (()-> Void)) {
getHomeConfig() {
callback()
}
}
func initializeAnythingElse(callback: @escaping (()-> Void)) {
getAnythingElse() {
callback()
}
}
我希望为那段代码编写单元测试。对于initializeHomeData
和initializeAnythingElse
,我可以编写如下单元测试:
func testInitializeHomeData() {
let successExpectation = expectation(description: "")
sut.initializeHomeData {
successExpectation.fulfill()
}
waitForExpectations(timeout: 1.0, handler: nil)
// Validation goes here
}
func testInitializeAnythingElse() {
let successExpectation = expectation(description: "")
sut.initializeAnythingElse {
successExpectation.fulfill()
}
waitForExpectations(timeout: 1.0, handler: nil)
// Validation goes here
}
我的问题是,如何测试reset()方法?我是否应该在testReset()中调用它们,像这样:
testReset()
?func testReset() {
testInitializeHomeData()
testInitializeAnythingElse()
}
但我认为这并不是适当的实现方式。