1: [TestFixture]
2: public class Specification
3: { 4: [SetUp]
5: public void Initialize()
6: { 7: Mocks = new MockRepository();
8: Before_each();
9: ReplayAll();
10: Because();
11: }
12:
13: [TearDown]
14: public void Cleanup()
15: { 16: After_each();
17: }
18:
19: protected virtual void Before_each() { } 20: protected virtual void After_each() { } 21: protected virtual void Because() { } 22:
23: public MockRepository Mocks { get; private set; } 24:
25: protected T Mock<T>() where T : class
26: { 27: return MockRepository.GenerateMock<T>();
28: }
29:
30: protected T Stub<T>() where T : class
31: { 32: return MockRepository.GenerateStub<T>();
33: }
34:
35: protected T Stub<T>(params object[] args) where T : class
36: { 37: return MockRepository.GenerateStub<T>(args);
38: }
39:
40: protected T Partial<T>() where T : class
41: { 42: return Mocks.PartialMock<T>();
43: }
44:
45: protected T Partial<T>(params object[] args) where T : class
46: { 47: return Mocks.PartialMock<T>(args);
48: }
49:
50: protected void Raise(object mock, string eventName, object sender, EventArgs args)
51: { 52: new EventRaiser((IMockedObject)mock, eventName).Raise(sender, args);
53: }
54:
55: protected virtual void ReplayAll()
56: { 57: Mocks.ReplayAll();
58: }
59:
60: protected void spec_not_implemented()
61: { 62: MethodBase caller = new StackTrace().GetFrame(1).GetMethod();
63:
64: spec_not_implemented(caller.DeclaringType.Name + "." + caller.Name);
65: }
66:
67: protected void spec_not_implemented(string specName)
68: { 69: Console.WriteLine("Specification not implemented : " + specName); 70: }
71:
72: }