Revision: 9609
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 13, 2008 22:38 by rengber
Initial Code
using System; using System.Collections.Generic; using System.Text; using NMock2; using NUnit.Framework; namespace NUnitSandbox { public interface IThingInterface { int GetThingNumber(); } public class RealThing { public int GetThingNumber() { return 13; } } public class ClassToBeTested { protected virtual IThingInterface GetThing() { return new RealThing() as IThingInterface; } public int WhatIsTheThingNumber() { IThingInterface iThing = GetThing(); return iThing.GetThingNumber(); } } /// <summary> /// This class inherits from ClassToBeTested, so it can override the Virtual Thing Factory method (GetThing). /// </summary> [TestFixture] public class TestClass : ClassToBeTested { private Mockery mocks = new Mockery(); /// <summary> /// This is the key. /// </summary> protected override IThingInterface GetThing() { IThingInterface mockThing = mocks.NewMock<IThingInterface>(); Expect.AtLeastOnce.On(mockThing).Method("GetThingNumber").Will(Return.Value(42)); return mockThing; } [Test] public void TestGetThingNumber() { Assert.AreEqual(42, this.WhatIsTheThingNumber(), "Get Thing Number value should return 42 as specified by the mock."); } } }
Initial URL
Initial Description
Initial Title
Using a Virtual Factory Method with NMock to help NUnit Testing
Initial Tags
c
Initial Language
C#