I really liked snapshot testing as implemented in Jest. Once you have a complex object, compare it with its previous value using expect(value).toMatchSnapshot(). If there is no previous snapshot, it will be saved under the test name. If there is a snapshot file already, the assertion compares the given value with the saved one and throws a well formatted exception if the two values differ. Other f