Remembering Thoughts
  Twitter GitHub RSS

Context Specification

Context Specification Base Class

namespace Example { using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Rhino.Mocks;

public abstract class ContextSpecification<T>
{
    protected Exception executionException;

    protected T sut { get; set; }

    [TestInitialize\]
    public void Start()
    {
        this.Context();
        this.SetupMockResults();
        this.Because();
    }

    [TestCleanup\]
    public void CleanUp()
    {
        this.Clean();
    }

    protected virtual void Context()
    {
    }

    protected virtual void SetupMockResults()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void Clean()
    {
    }

    protected TInterface GetDependency<TInterface>() where TInterface : class
    {
        return MockRepository.GenerateMock<TInterface>();
    }

    public void Execute(Action action)
    {
        try
        {
            action();
        }
        catch (Exception ex)
        {
            executionException = ex;
        }
    }

} }

Published:

Share on Twitter