Telerik blogs

Three months have passed since we released the first beta of JustMock. We've improved JustMock quite a lot since then, and we've fixed almost all of the reported problems. We also implemented many requested features.
As we announced back in April, we'll make JustMock's first official version part of the Q2 release (round about the 12th of July). Most likely, the first question that comes to mind (if you're considering using JustMock) is "Should I use the first version of this product or should I wait until it is more mature?”
I'll try to answer this question by providing a list of what we've managed to include in the first version, and what's left for future versions:

  • We've added support for VS 2010 and TestDriven.NET.
  • We've used JustMock in an ASP.NET environment to show how it can help unit test ASP.NET code.
  • We've also made sure JustMock can help you test ASP.NET MVC code.
  • We've made sure JustMock will work with OpenAccess (a separate blog post is about to follow), LINQ2SQL, NHibernate, Sharepoint and other scenarios.  The respective tests are included in the examples we ship with the installation.
  • We've fixed a good number of problems reported by users who've tried JustMock's beta.

The second question that may come to your mind is "Why should I use JustMock and not some other mocking tool(s)?" and I hope the following points give a good reason.

  • The free mocking tools only mock interfaces and virtual and abstract members, but JustMock can mock... everything. Using JustMock you can mock final and static members and types, sealed classes and so on. Additionally JustMock has some other cool features like partial mocking and sequential mocking.
     
  • The free mocking tools use the dynamic proxy approach to produce mock objects. The advantages of this approach are: easy deployment (you just reference a single dll), performance, (your unit tests run faster) and very easy integration with code coverage tools and profilers. The other paid mocking tools on the market use the profiler code rewriting approach which allows you to mock static and final members and types and sealed classes. This approach is quite powerful, but unfortunately it has some disadvantages: hard deployment, poor unit test performance, and it must be integrated with the code coverage tools and profilers which you're using.
    The unique thing about JustMock is that it features the best of both worlds. It will use the profiler code rewriting approach only when necessary.  This allows easier deployment when mocking interfaces and virtual and abstract members, and you'll have faster running unit tests. 
     
  • We really put a lot of thought into our API, and the way you use JustMock. You can easily see how JustMock stands out in this respect by comparing the API used to setup partial or sequential mocking with the other mocking frameworks' API. Additionally, you can compare JustMock's API for matching mocked methods' parameters (argument matchers) with the respective API of other commercial mocking frameworks. I'm sure you will love how things are done in JustMock. If not... we'd be glad to hear your feedback.
     
  • In the first official JustMock release you'll be able to mock non-public members and types. Maybe the right term to use here is "isolating" and not "mocking.” Either way, this is something people have expected our tool to do, so we gave it high priority.
     
  • Speaking of "isolating" and "mocking", we see these two approaches as slightly different, but usually used for the same intent. We'll try to explain in different posts what meaning we put in these two terms. Until now, we've mostly advertised JustMock as a mocking tool, but the good news is that it can also be used for isolating calls. We've neither mentioned this, nor have we documented it because we wanted to blog about it first to see whether people are really interested in this approach. If they are, then we'll definitely make it more visible in the next release of JustMock.
     
  • Thanks to JustCode, developers can now enjoy some help when doing repetitive actions like setting expectations for mock objects.
     
  •  I've already mentioned that you shouldn't have any problem doing code coverage and profiling tests which mock interfaces and abstract and virtual members, but how about doing that with elevated tests (tests which mock static and non-virtual methods and members)? For the first version of JustMock we've decided to support the following tools in this mode: NCoverPartCover (as PartCover is an open source tool, we've decided to provide a topic in the documentation about how to make it work with JustMock), and JetBrains dotTrace. Should you need support for some other code coverage tool or profiler, we'll be glad to help.

I hope you'll like JustMock's first official version and we'll be waiting for your feedback.

Have a great and productive day!


About the Author

Hristo Kosev

 

Comments

Comments are disabled in preview mode.