Target Group: Developers
Complexity: Medium
Disclaimer: This is not a comprehensive comparison but is based on my limited experience. Any feedback is highly welcome.
Way too late in my career, I started using mocking frameworks. Now, I’ve too many mocking frameworks to choose from. I was wondering, what’s the difference and what’s the best one to choose for my personal or team projects.
I used the OG of mocking frameworks: FFLIB APEX Mocks as my first contender. As a stand-in for all modern/new mocking frameworks, I used Amoss.
Summary:
The difference between FFLIB and Amoss is quite small. A basic implementation looks almost the same. I found Amoss more flexible and slightly more powerful.
Personal projects:
I personally prefer Amoss for its smaller footprint, powerful spy, and clear documentation.
Team projects:
Since FFLIBI is the defacto community standard, for most teams FFLIB is properly the right choice.
FFLIB APEX Mocks:
1) Overview
– Concept: Stub OR Interface based
– Developed: 2014
– Dev. Group: Was large
– Active Development: Yes
– Popularity: High
1) Features
1.1 Stubing classes: Yes
1.2 sObject generator: Yes
1.3 Spy/Watcher: Limited
2) Easy to install: Yes
3) Documentation: Not too good broken links, old blog, complex to follow but many videos and secondary blogs.
4) Easy to understand: Yes
5) Footprint: Large
Amoss APEX Mocks:
1) Overview
– Concept: Stub based
– Developed: 2020
– Dev. Group: Small
– Active Development: Yes
– Popularity: Medium
1) Features
1.1 Stubing classes: Yes
1.2 sObject generator: No, SObjectFabricator needed
1.3 Spy/Watcher: Amazing
2) Easy to install: Yes
3) Comprehensive documentation: Yes, nothing missing, easy to follow, not much community content
4) Easy to understand: Yes
5) Footprint: Medium
PS: Thanks to all the people who give us such powerful free libraries.
Thanks to Robert Baillie for answering my questions.