interlockjs / interlock

JS bundler - inspired by Git, built on Babel.
MIT License
72 stars 7 forks source link

Investigate Property Based Testing #9

Closed baer closed 8 years ago

baer commented 9 years ago

Haskell's QuickCheck for JavaScript jsVerify seems like it could be really well used here. In short it is a tool where you define the properties of your output rather than the value itself. Doing so allows it to test random inputs and verify their outputs which can help identify edge cases.

This tool/technique lends itself to pure functions and comes from the functional world so it may be well suited to some of the areas of this project.

divmain commented 9 years ago

Huh... this looks really cool. I think it'd take a bit for me to dig in and figure out what it'd look like to write tests this way. But I like the idea of validating all possible inputs for a given function.

baer commented 9 years ago

It would be an addition not a replacement to the current tooling. I've not used it myself yet but it's gotten some string reviews and people seem to really love QuickCheck. We'd have to do some poking around to see if this makes sense.

divmain commented 8 years ago

Finally looked into this, and it seems impractical for the types of things we need to test. Going to focus on 1) unit tests, and 2) functional tests.