Typemock and .NET 1.1
Although we still have many developers using Typemock in .NET 1.1, now that .NET 3.5 is out, we are going to drop the support for .NET 1.1. in our next version.
Version 4.2 will be the last version to support .NET 1.1. This will allow us to support better .NET 2.0+ features and support better type-safe programming.
Any objections?
Typemock Isolator 4.2 is released
We have released version 4.2 of Typemock Isolator, now with more features that enable shorter development cycles, higher quality of production code, better tested and more stable software components.
Typemock Isolator V4.2 introduces support of the new .NET 3.5 framework as well as Microsoft’s Visual Studio 2008. Version 4.2 has an improved IDE integration based on using colors to emphasize mocked methods making the best visualization, easiness and comfort for developers to verify their code developments.
On top, Typemock Isolator V4.2 provides full support of synergetic solutions such as Finalbuilder™ and DotTracer™ profiler, making this new release the most powerful testing framework for .NET developments ever.
“We are always seeking ways to help you simplify the development process, and our improved interface and integration with the market leading tools ensures organizations and developers with easiness, better software quality and a true saving of development expenditure”.
Webcast of new features
Mark your calendar for the live special webcast of Typemock Isolator on Wednesday, March 12th at 4PM GMT (8AM PST). To join the webcast and for further details please click here.
Typemock and Design Issues
The new field mock feature that enables developers to mock fields has raised the questions:
- Who needs to mock fields, (only bad programmers)?
- Does Typemock advocate bad design?
- Is Typemock too powerful?
Advocating Good Design
Well, lets get one thing straight. I do advocate good design, the design of the software is an important factor and one that I spend a lot of time on. I don’t advocate bad design. But this has nothing to do with testing tools.
Separation of Concerns
Mixing the abilities of tools is not a very good idea, I can give you numerous examples: One is my friends combined DVD/VCR that didn’t last long, the DVD had missing functionality that made the machine obsolete. Having your testing tool and design tool in one can lead to the same results.
I believe in Separation of Concerns – the testing tool should help you test your software and give you the confidence that you code works, it should not (as much as possible) force you (or help you) to design your code. The design tools (refactoring) should enable you to design your code in a better way, it should not test your code. Testing and Designing are different mind-sets. When you are testing your code, you are thinking about the external API and the scenario that you are testing – trying to make the code fail. This is a different mind set then when designing your code, where you need to see the higher picture and how to put all the pieces together. That is why TDD has 3 different steps: Test, Code, Refactor! (Where Refactor is the Design process)
So what about mocking fields
Enabling Field Mocking comes from the same philosophy: Let the developer test his code. There is such a beast called “public fields” in .NET and there are some teams that use them and need to test their code. To give them confidence in there code, we can create pragmatic tools that will enable these team to test their code base and thus help these teams become more agile. If we tell these teams that they cannot test there code unless they conform to one certain design, these teams will not become agile as the bar is too high.
And what about design
There are many tools that developers can use to design there code (before or after writing tests), from static code analyzers like fxCop to refactor tools like Visual Studio and Resharper, and of course code reviews (and pair programming) which I believe are the best tools for design.
Once you separate the testing phase from the design phase you will have the freedom to make the correct balance and thus the best design, Typemock actually helps you get BETTER designed software. As long as you start thinking about the design seriously (by ruthlessly refactoring) and stop relying on your testing tool to do your design for you.
Decorator feature enhancement
[Cross Posted in TypeMock Insider Blog]
Typemock-Isolator has a little know Decorator feature that allows developers to simply add capabilities to their test framework (all test framework).
Using this feature Typemock-Isolator creates the [VerifyMocks] decorator that automatically verifies the mocks at the end of your tests.
To create a custom decorator simply extend the DecoratorAttribute and implement the Execute method.
public override object Execute()
{
// Trace start of method
Console.WriteLine(“Entering Method:”+
OriginalMethod.ToString());
// Execute the original method
return base.CallDecoratedMethod();
}
To support multiple decorators on the same test method, Typemock-Isolator makes sure that even if a developer forgot to call CallDecoratedMethod() the test method will still run. This is done by calling the decorated method if it wasn’t explicitly called.
We discovered that some Decorator implementers want more control and need to explicitly make sure that the test method was NOT called.
A new API was added in version 4.2 to do just that.
Once this is called (inside Execute), the decorator mechanism will not call the test method.
Of course if there is another decorator on the test method that calls CallDecoratedMethod() the test method will be executed.
Tips and Tricks
I am happy to announce that we have opened a Typemock Blog
The blog will host posts from Typemock developers and will give inside information and tip and tricks.
Lior Friedman has already posted a explanation of the difference between Mock and MockObject
Typemock Isolator – Beta – Better Community
The Typemock team has released our next version of TypeMock.NET.
We are calling it Typemock-Isolator. As Typemock helps developers Isolate their code from the rest of the system and make it Testable.
The main reason behind this are our plans to create more tools that will help simplify writing unit tests.
The Brain-Storming sessions behind this name where fun and we actually decided on a name, coded it in and then changed the name a few times after that (talk about agile teams). But the team took these changes really well!
Roy and Paulo have already talked about some new features.
Mainly Better Debugger Integration and Mocking Fields!!!
We have decided to add more features to our Community Edition and some features that were in the Professional Edition and can now be used in the Community Edition
- Mocking using Generic Code Sugar
- Integrated Visual Studio Help can now be downloaded by all Typemock-Isolator users
- Per your request*: The annoying feedback screen while in evaluation, has been removed.
Mock mockControl = MockManager.Mock<ClassToMock>();
* The majority of feedbacks we received was to remove the Feedback Screen
Recent Posts
- Unacceptable: Unit testing will take 20 years to catch on
- The 4 reasons why we DIDN’T choose Oslo
- Typemock Academy Launch
- The First Rule to Software Craftsmanship
- Goal-driven Development
Categories
- .NET Tests
- Agile
- Code Integrity
- Community
- Debugging
- Fun
- Management for Geeks
- Marketing
- Product
- Release
- Reviews
- SharePoint
- TDD
- Time Management
- Uncategorized
- Unit Tests
Archives
- May 2010
- April 2010
- March 2010
- February 2010
- December 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- November 2008
- August 2008
- July 2008
- May 2008
- April 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
