What is MockingBird?
MockingBird Service Simulator
is a configurable message interceptor backed by a generic simulation engine that can act as a stand in for any web service. It also includes a set of tools to help build and test mock services.
Current Release - V2 RTM
is now available. The new features of this release are the addition of a Service Configurator module which allows you to pick a WSDL (on file or from a running service) and automatically generate a default mock service. Check out the blog post
for more details on the new features.
Please refer to the Documentation tab of the workspace for notes on pre-requisites, deployment and other documentation. Note: Platform Consideration:
If you are using this on Win7 or Win2008/R2 (Basically IIS7.x) then the app pool should be running in Classic Mode.
NEW - MockingBird Videos
MockingBird V2 Videos
are now available. Let us know if you find them helpful and what other video content on MB would be useful
- Contract First Development: In many development/integration scenarios it is common to define a WSDL first for all your web services and then proceed with developing the services that implement it. In such scenarios MockingBird helps you by generating a complete mock service that you can test against while development is proceeding. Additionally some products do not lend themselves to easy 'mocking' (examples: BizTalk, Sharepoint) . Also when dealing with commercial web services, it is common to be provided a WSDL first and thats all you have till licenses are acquired and the service is installed. Again, by mocking these services up, your dev effort can get off the ground quicker.
- Environment Isolation: For your build and automated test / CI process and other 'dev' environments , it can be invaluable to be completely independent of any external service. This is where MockingBird comes in.
- Integration Test Facilitation: With some commercial web services you are restricted to only a few environments to install and even then, setting up test data and reconfiguring the installation for functional testing can be laborious. Most non trivial web services also have databases and other configuration stores which are not easy to setup and tear down during testing. Enter MockingBird.
Setting up stub services can be very laborious and MockingBird aims to make this much simpler. It is important to understand that MockingBird does NOT replace unit testing
where you may employ traditional mock or stub objects, rather it is a functional/integration test facilitator
Of course you do eventually need to perform functional and integration tests against the actual external system because it is not possible to simulate all the exceptions and data conditions of a line-of-business application in a mock service. Mockingbird just helps you get a working interface with a comprehensive base of response messages that will help in getting development off the ground.
The documentation provides more details on these usage scenarios. Please read through the documentation to understand how the MockingBird toolset works in greater detail.
What does it look like and what's inside the box ?
At a very high level the system looks like the illustration below
The only requirement for the system to work right out of the box
is a “model” XML file representing the endpoint (and the Configurator module can generate this automatically from a given WSDL)
There are 3 main components of MockingBird at this time (and many more to come)
- A Service Simulator app which is comprised of - An ASP.NET HttpHandler, A WCF message Interceptor, A WCF SimulatorHost console (for non Http protocol support) and all these are backed up by a generic Simulation Framework which is configured to return pre-defined responses using a model file for each endpoint that is being simulated.
- A Service Studio application that has 3 main modules
- A module to pick a WSDL and automatically generate a complete default mock service.
- A module to parse a given WSDL and generate sample requests and responses and help in setting up a mock service quickly.
- A module to invoke the test services or remote services and check the responses.
- A XML Instance Generation library that is used in the Service Studio but can also be used independently.
Please refer to the comprehensive documentation (included with the download package) to understand how to install it, how it works and how to extend it.
The primary areas that we are targeting for the future are
(1) Structural changes to enable extensibility and customization
(2) Upgrade of platform to .NET 4 and Windows Server AppFabric
(3) Extending this to provide mock BizTalk adapters via the WCF LOB Adapter SDK
(4) A better UI (preferably WPF) to help setup, configure and manage the mock services.
(5) REST services, oDATA support
Do send us feedback via the discussion forums here on your installation /setup experiences, thoughts on making it more extensible and so on, and most importantly of course, do let us know if its working for you or not. All feedback is appreciated.