@@ -213,7 +213,7 @@ extension XCTestCase {
213213 afterReducer. reducerIsDone ( )
214214
215215 stateChange ( & expected)
216- ensureStateMutation ( equating: stateEquating, statusQuo: state, expected: expected, step: outerStep)
216+ ensureStateMutation ( equating: stateEquating, statusQuo: state, expected: expected, step: outerStep, file : file , line : line )
217217 case let . receive( action, file, line, stateChange) : //action, file, line, stateChange):
218218 if middlewareResponses. isEmpty {
219219 _ = XCTWaiter . wait ( for: [ gotAction] , timeout: 0.2 )
@@ -235,7 +235,7 @@ extension XCTestCase {
235235 afterReducer. reducerIsDone ( )
236236
237237 stateChange ( & expected)
238- ensureStateMutation ( equating: stateEquating, statusQuo: state, expected: expected, step: outerStep)
238+ ensureStateMutation ( equating: stateEquating, statusQuo: state, expected: expected, step: outerStep, file : file , line : line )
239239 case let . sideEffectResult( execute) :
240240 execute ( )
241241 }
@@ -252,16 +252,19 @@ extension XCTestCase {
252252 statusQuo: StateType ,
253253 expected: StateType ,
254254 step: Step < ActionType , StateType > ,
255- file: StaticString = #filePath ,
256- line: UInt = #line
255+ file: StaticString ,
256+ line: UInt
257257 ) {
258258 XCTAssertTrue (
259259 equating ( statusQuo, expected) ,
260260 {
261261 var stateString : String = " " , expectedString : String = " "
262+
262263 dump ( statusQuo, to: & stateString, name: nil , indent: 2 )
263264 dump ( expected, to: & expectedString, name: nil , indent: 2 )
264- return " Expected state after step \( step) different from current state \n \( expectedString) \n \( stateString) "
265+
266+ let difference = diff ( old: expectedString, new: stateString) ?? " "
267+ return " Expected state after step \( step) different from current state \n \( difference) "
265268 } ( ) ,
266269 file: file,
267270 line: line
0 commit comments