我有一个工厂类,正在尝试确定单位测试应该做什么。从这个问题中,我可以验证返回的接口是我期望的特定具体类型。
如果工厂返回的是具体类型(因为目前没有必要使用接口),那么我应该检查什么?目前我正在执行类似以下操作的步骤:
[Test]
public void CreateSomeClassWithDependencies()
{
// m_factory is instantiated in the SetUp method
var someClass = m_factory.CreateSomeClassWithDependencies();
Assert.IsNotNull(someClass);
}
这样做的问题在于,Assert.IsNotNull
似乎有些多余。此外,我的工厂方法可能会这样设置该特定类的依赖项:
public SomeClass CreateSomeClassWithDependencies()
{
return new SomeClass(CreateADependency(), CreateAnotherDependency(),
CreateAThirdDependency());
}
我希望确保我的工厂方法正确设置了所有这些依赖项。难道没有其他方法可以做到这一点,而不是将那些依赖项设为public/internal
属性,然后在单元测试中检查它们吗?(我不太喜欢修改测试对象以适应测试)
编辑:针对Robert Harvey的问题,我正在使用NUnit作为我的单元测试框架(但我认为这不会有太大的区别)