Python
Python comes with a test framework in the standard library. It is simply called unittest. The module unittest.mock also contains a mocking framework. Thus you can start unittesting with Python out of the box.
You can find more information about in the Python documentation. Also, check out my TDD example to see the usage of the unittest framework.
Java
The most popular test framework for Java is JUnit.
JUnit does not come with a mocking framework. There seems to be a multitude of frameworks out there, which cater to different needs. Examples include JMock, Mockito and JMockit. I cannot give a recomendation for any of these, as I have not tried mocking in Java. You have to do your own research to select the framework that best suits your programming style.
C/C++
Google has released its test framework Google Test as open source. Since then, it has become very popular in the C++ community.
Google Test also comes with its own powerful mocking library, Google Mock.
C#/.Net
Visual Studio comes with its own test framework. You can run your tests from Visual Studio, which makes it very comfortable to examine the test results and to re-run failed tests.
If you happen to use Visual Studio Enterprise, you can use Microsoft Fakes to create stub objects.
If you don’t have VS Enterprise or want to create mock objects, there are a number of open source mocking frameworks out there. A very popular one, even recommended by Microsoft developers, is Moq.
Swift
As Visual Studio, Apple’s XCode IDE has its own testing framework, which is called XCTest. You can run these test cases from within XCode. With XCTest, not only can you write unit test, but also tests for the GUI of your application.
XCTest does not provide a mocking framework. In fact, there is no pure Swift mocking framework available yet. It seems to be due to the static nature of Swift. Some people have suggested workarounds to create mocks manually, like Mark Spanbroek and Andrew Bancroft. But all these solutions require creating a lot of boilerplace code.
Other Languages
This list is far from complete. For almost every language, there is a multitude of other test and mocking frameworks. And of course, there are also mocking frameworks for languages that are not in this list as well. As a starting point for further research, you can use this list from Wikipedia.
2 replies on “Test and Mocking Frameworks for Test Driven Development: The Overview”
[…] with a test framework for your programming language. You can find an overview of test frameworks in this article. Once you have mastered the basics, you will easily understand other test frameworks as […]
[…] Mock frameworks provide you with the tools to create the test doubles that you need. Also you can use them to create other kinds of test doubles, like spies or stubs. I recommend to choose a good mocking framework and make yourself familiar with it. You can find an overview about frameworks for many popular programming languages here. […]