Login using System.Noticeably.Different.WebSite;
November 19, 2008 NoticeablyDifferent
Search for
 
Testing The Factory Pattern 
    #region Code
public abstract class Subject {
    public abstract Product FactoryMethod();
}
 
public class ConcreteCreator : Creator {
 
    public ConcreteCreator() { }
 
    public override Product FactoryMethod() {
        return new ConcreteProduct();
    }
}
 
public abstract class Product { }
 
public class ConcreteProduct : Product {
    public ConcreteProduct() { }
}
    #endregion
 
    #region Unit Tests
[TestFixture]
public class ConcreteCreatorTests {
 
    private ConcreteCreator concreteCreator = new ConcreteCreator();
 
    public ConcreteCreatorTests() { }
 
    [Test]
    public void FactoryMethodCreatesConcreteProduct() {
        Assert.AreEqual(typeof(ConcreteProduct), concreteCreator.FactoryMethod().GetType());
    }
}
 
[TestFixture]
public class ConcreteProductTests {
 
    private ConcreteProduct concreteProduct = new ConcreteProduct();
 
    public ConcreteProductTests() { }
 
    [Test]
    public TestStub() {
        //TODO: Create tests for any public methods of ConcreteProduct.
    }
}
    #endregion