The subject of testing in a typed language such as Reason is a somewhat controversial topic. Some believe that a good test suite diminishes the need for a type system. On the other hand, some value a type system much more than their test suite. These differences in opinion can lead to some pretty heated debates.
Of course, types and tests are not mutually exclusive. We can have types and tests. Perhaps Cheng Lou, one of Reason's core team members, said it best.
Tests. That's an easy one, right? Types kill a category of tests—not all of the tests. And this is a discussion that people don't appreciate enough. They all pit tests against types. The point is: if you have types, and you add tests, your tests will be able to express much more with less energy. You don't need to assert on invalid input anymore. You can assert on something...