2 places I wish I could use TypeMock - part 1

There is a saying in an ancient language: “the shoemaker walks barefoot”. This is still true in our future age, and the TypeMock creators cannot test TypeMock.NET with TypeMock.

Here are 3 places that we had to use other methods:

1. Displaying a Message
Here is the code (it is static as it doesn’t use any member fields):

internal static void ShowMessageBox(AboutMessage msg)
{
   Application
.EnableVisualStyles();
   Application.Run(new AboutMessageBox
(msg,0));
}

We cannot run this in our tests as a MessageBox will appear and halt our tests.
If we had TypeMock.NET we could test as follows, expecting ShowMessage to be called once.

Mock m = MockManager.Mock(typeof(TestedClass));
m.ExpectCall(“ShowMessageBox”);

Simple.  Here is what we had to do:

#if DEBUG
  
public static bool shouldMock = false;
   
public static int countCalls = 0;
#endif

internal static void ShowMessageBox(AboutMessage msg)
{
#if DEBUG
  
if (shouldMock)
  
{
     
countCalls++;
     
return;
  
}
#endif
   Application.EnableVisualStyles();
   Application.Run(new AboutMessageBox
(msg,0));
}


We had to enable the method to not show the MessageBox  in certain cases. We decided to keep it all in debug mode only so that the production code is not spoiled.

TestedClass.shouldMock = true;
TestedClass.countCalls = 0;

Assert.AreEqual(1,TestedClass.countCalls);
TestedClass.shouldMock = false;

I am sure that there are better ways to do this, but having TypeMock would have really helped keep our code clean.

Bookmark at:
Add '2 places I wish I could use TypeMock - part 1' to Del.icio.us Add '2 places I wish I could use TypeMock - part 1' to digg Add '2 places I wish I could use TypeMock - part 1' to reddit Add '2 places I wish I could use TypeMock - part 1' to Feed Me Links! Add '2 places I wish I could use TypeMock - part 1' to Technorati Add '2 places I wish I could use TypeMock - part 1' to Yahoo My Web Add '2 places I wish I could use TypeMock - part 1' to Newsvine Add '2 places I wish I could use TypeMock - part 1' to FURL Add '2 places I wish I could use TypeMock - part 1' to blinklist Add '2 places I wish I could use TypeMock - part 1' to My-Tuts 

26 September 2006 | .NET Tests | Comments | Print This Post

Leave a Reply

  1.  
  2.  
  3.  
Search Eli Lopian’s Blog (TypeMock)

Navigation

Recent Posts

Categories

Archives

Managment