@@ -24,14 +24,21 @@ import XCTest
2424
2525class TodoListManagerTests : XCTestCase {
2626
27+ let fakeDefaults = UserDefaults ( suiteName: " test " ) !
28+
29+ override func tearDown( ) {
30+ super. tearDown ( )
31+ fakeDefaults. removeObject ( forKey: " todo-items " )
32+ }
33+
2734 func testTodoListManagerInitialization( ) {
28- let manager = TodoListManager ( )
35+ let manager = TodoListManager ( userDefaults : fakeDefaults )
2936 XCTAssertNotNil ( manager)
3037 XCTAssertTrue ( manager. todoItems. isEmpty)
3138 }
3239
3340 func testAddTodoItem( ) {
34- let manager = TodoListManager ( )
41+ let manager = TodoListManager ( userDefaults : fakeDefaults )
3542 let initialCount = manager. todoItems. count
3643
3744 manager. addTodoItem ( title: " New Task " )
@@ -42,7 +49,7 @@ class TodoListManagerTests: XCTestCase {
4249 }
4350
4451 func testToggleTodoItem( ) {
45- let manager = TodoListManager ( )
52+ let manager = TodoListManager ( userDefaults : fakeDefaults )
4653 manager. addTodoItem ( title: " Test Task " )
4754
4855 guard let item = manager. todoItems. first else {
@@ -57,7 +64,7 @@ class TodoListManagerTests: XCTestCase {
5764 }
5865
5966 func testDeleteTodoItem( ) {
60- let manager = TodoListManager ( )
67+ let manager = TodoListManager ( userDefaults : fakeDefaults )
6168 manager. addTodoItem ( title: " Task to Delete " )
6269
6370 guard let item = manager. todoItems. first else {
@@ -73,16 +80,16 @@ class TodoListManagerTests: XCTestCase {
7380 }
7481
7582 func testTodoListManagerPersistence( ) {
76- let manager1 = TodoListManager ( )
83+ let manager1 = TodoListManager ( userDefaults : fakeDefaults )
7784 manager1. addTodoItem ( title: " Persistent Task " )
7885
79- let manager2 = TodoListManager ( )
86+ let manager2 = TodoListManager ( userDefaults : fakeDefaults )
8087 XCTAssertEqual ( manager2. todoItems. count, 1 )
8188 XCTAssertEqual ( manager2. todoItems. first? . title, " Persistent Task " )
8289 }
8390
8491 func testMultipleTodoItems( ) {
85- let manager = TodoListManager ( )
92+ let manager = TodoListManager ( userDefaults : fakeDefaults )
8693
8794 manager. addTodoItem ( title: " Task 1 " )
8895 manager. addTodoItem ( title: " Task 2 " )
@@ -95,7 +102,7 @@ class TodoListManagerTests: XCTestCase {
95102 }
96103
97104 func testToggleNonExistentItem( ) {
98- let manager = TodoListManager ( )
105+ let manager = TodoListManager ( userDefaults : fakeDefaults )
99106 let fakeItem = TodoItem ( title: " Fake Item " )
100107
101108 // Should not crash
@@ -104,7 +111,7 @@ class TodoListManagerTests: XCTestCase {
104111 }
105112
106113 func testDeleteNonExistentItem( ) {
107- let manager = TodoListManager ( )
114+ let manager = TodoListManager ( userDefaults : fakeDefaults )
108115 let fakeItem = TodoItem ( title: " Fake Item " )
109116
110117 // Should not crash
@@ -113,15 +120,15 @@ class TodoListManagerTests: XCTestCase {
113120 }
114121
115122 func testEmptyTitleHandling( ) {
116- let manager = TodoListManager ( )
123+ let manager = TodoListManager ( userDefaults : fakeDefaults )
117124 manager. addTodoItem ( title: " " )
118125
119126 XCTAssertEqual ( manager. todoItems. count, 1 )
120127 XCTAssertEqual ( manager. todoItems. first? . title, " " )
121128 }
122129
123130 func testVeryLongTitle( ) {
124- let manager = TodoListManager ( )
131+ let manager = TodoListManager ( userDefaults : fakeDefaults )
125132 let longTitle = String ( repeating: " A " , count: 1000 )
126133 manager. addTodoItem ( title: longTitle)
127134
@@ -130,7 +137,7 @@ class TodoListManagerTests: XCTestCase {
130137 }
131138
132139 func testTodoListManagerPerformance( ) {
133- let manager = TodoListManager ( )
140+ let manager = TodoListManager ( userDefaults : fakeDefaults )
134141
135142 measure {
136143 for i in 0 ..< 100 {
0 commit comments