Since launching the AAA API for Typemock Isolator last summer, we have put much care and consideration into making sure we are doing things right this time around. There are many considerations we take into account before performing any addition to this API, including
- Fluency and natural language readability – in my opinion readable tests = maintainable tests = effective tests.
- Usability and cognition – avoid too many choices on screen, avoid forcing the user to remember a completing statement if possible.
- Error prevention – any usage mistake is probably our own bug. We analyze those to understand where we could have helped the user avoid the mistake in the first place.
- Conciseness – use one statement instead of two if it doesn’t involve making (too many) hidden assumptions about test behavior.
The AAA API has gone a long way since its launch with the addition of static method
support, non-public method
support, duck-type swapping
and more. We painstakingly consider the resulting API changes in any such addition to maintain the above API quality criteria.
We are looking to add many additional features to this API; some of these features are familiar from our other APIs (Natural
), and some are new. We are focused to bring the AAA API up to the capabilities of our older APIs, but make it better in usability and readability. We also have cool features in mind which we will add to it as well.
The following features are right now on our AAA release backlog. The order and content may vary, but you can expect to see these features implemented in the near future with detailed posts for each around release time:
- Repeating and ordered method behavior
- Handling properties and indexers
- Conditional behavior
- Handling method overloads properly
- Faking method with dynamic behavior
- Faking behavior for all instances of a class
- Faking base class behavior
- Faking event handling
Note that this list is partial and does not include other development plans we have, such as improved Visual Basic isolation
support, cleaning up and simplifying error messages, better development environment integration and more. As an agile development team we are constantly adjusting and shifting plans. Think we left something out? Want to see another feature I did not mention? We are open to anything – just post a comment!