I don't really like this layering; there's no reason to be doing try:catch except for the fact that you're using assert_that, and assert_that is missing most of the really interesting features.