Approval Tests are a thing
In normal unit testing, you say expect(person.calculate_bmi).to eq(21)
or something like that. Approvals allow you to assert the state of complex objects against a known state.
For example, you can say, Approvals.verify(person)
I had not heard of this approach, which is posed as an alternative to traditional TDD. http://approvaltests.com