Back when we shipped the original JSONCustom Function Library, we adopted rigorous testing as part of our development process. Testing FileMaker custom functions proved incredibly valuable. Those functions went to become critical parts of fmQBO, Generator, and every custom project we have done since.  We have a new library that we want to develop in the same way.  In this video, we’ll see how it becomes such a critical part of an open source project.

Contributions

We love getting contributions. We are trying to create useful tools that everyone can use. But to do that we have to be able to collaborate effectively.  We need to make sure that new bug fixes or features don’t break existing features.  The best way to do that is with tests. We ask everyone who wants to contribute to help us by writing simple tests.  Don’t worry they aren’t hard.  Our Contributing Guide and this video show you how to do it.  Remember it’s just FileMaker.

Moving Forward and Getting Smarter

When FileMaker decided to add native JSON functions to FileMaker they used the test file that we had made for our JSONCustomFunction library to make sure that the new functions behaved mostly like the ones we had created.  That’s why the native functions are so similar to ours.Testing FileMaker

Why did they use our Test file? Why not create their own tests?  Because our test file included a number of edge cases and tricky issues that needed to be solved in the real world. Every bug we encountered, every new feature we added had tests. Over time those tests got smarter and smarter and covered more and more of the use cases that we encountered in the wild. In short using the test file for our functions was the easiest way for FileMaker to ensure that the new functions were useful.

Testing FileMaker Custom Function is Easy

Testing isn’t hard. But it does take more work up front.  But once you out the tests in place you will be glad you did.  It will save you countless hours in the future.  We’ll have more to say about testing FileMaker scripts and other parts of FileMaker in the future.