1 points atultw | 1 comments | | HN request time: 0.212s | source

Every indie hacker knows the feeling: re-entering the same test data on every build, or spending hours writing integration tests. With Refinery, all you have to do is add a few lines of code, and the SDK will record how you naturally test your app. You can then replay all your test cases with just one click from the dashboard.

The common approach to testing is to write test files, but it's difficult to hardcode values for your test data when you are dealing with Swift NSObjects (think images, audio, video) or complex classes in Python. Refinery makes it easy to sample entered test data directly from your app, and to automatically plug in that same data on subsequent builds. It's like when you step into your program using a debugger and edit variable values. Refinery automates that process and repeats it for each test case, so you can keep your testing process consistent across builds with ease. All you have to do is add one line of code for each variable that you want to "sync".

For example, for an image filter, you might record the input image, filter name (or the entire filter object - Refinery is compatible with NSKeyedArchiver), and output image. When you rerun the test suite, you can pick which variables to fix and which ones to keep free (for example, if you are trying out a new filter, you would keep the input image fixed, but keep the filter and output variables free so you can compare the differences). For numerical and text variables, you can manually set the value in the Refinery dashboard to easily test small tweaks.

Refinery is already fully functional, I'm just creating user accounts manually at first to prevent abuse and to provide more personal support to early adopters. Sign up and let me know what you think! Feedback is appreciated.