这就是我的QuickAddViewController.swift文件中的内容
let exercisesData = ExerciseDatabase()
var workoutTypesDictionary = Dictionary<String,Dictionary<String,Array<String>>>()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
workoutTypesDictionary = self.exercisesData.exercisesByWorkoutType
}
func getWorkoutTypes() -> [String] {
var workoutTypesArray : [String] = []
for workoutType in workoutTypesDictionary.keys {
workoutTypesArray.append(workoutType)
}
return workoutTypesArray
}
这是我的QuickAddViewTest.swift文件
class QuickAddViewTests: XCTestCase {
var quickAddViewController : QuickAddViewController!
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
quickAddViewController = QuickAddViewController()
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testGetWorkoutTypes() {
let workoutTypesArray = quickAddViewController.getWorkoutTypes()
let expectedArray = ["Weight Training", "Sports & Recreation", "Body Weight", "Cardio"]
print("Workout Array: \(workoutTypesArray)")
print("Expected Array: \(expectedArray)")
XCTAssertEqual(workoutTypesArray, expectedArray)
}
当我运行应用程序并打印getWorkoutTypes()时,该函数返回正确的值。但是,当我尝试在testGetWorkoutTypes()中返回相同的值时,什么也没有返回,并且测试失败。
答案 0 :(得分:1)
添加
quickAddViewController.loadViewIfNeeded()
这会导致连接情节提要板连接(这使得其他测试成为可能)并触发回拨到viewDidLoad()
的呼叫。