unit-testing – 单元测试工厂方法,它有一个具体类作为返回类型

前端之家收集整理的这篇文章主要介绍了unit-testing – 单元测试工厂方法,它有一个具体类作为返回类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个工厂类,我试图找出单元测试应该做什么。从这 question我可以验证返回的接口是一个特定的具体类型,我会期望。

如果工厂返回具体类型(因为目前不需要使用接口),我应该检查什么?目前我做的事情如下:

[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());
}

我想确保我的工厂方法正确设置所有这些依赖项。有没有其他方法来做这个,然后使那些依赖的公共/内部属性,然后我在单元测试中检查? (我不是修改测试主题以适应测试的大粉丝)

编辑:为了回应Robert Harvey的问题,我使用NUnit作为我的单元测试框架(但我不会认为它会产生太大的区别)

通常,创建可用于基于状态的测试的公共属性没有问题。是:这是您创建的代码,以启用测试场景,但它是否会伤害您的API?可以想象,其他客户端会发现相同的属性后来有用吗?

在测试特定的代码和测试驱动设计之间有一条细微的线。我们不应该引入没有其他潜力的代码来满足测试需求,但是它很好地引入遵循普遍接受的设计原则的新代码。我们让测试驱动我们的设计 – 这就是为什么我们称之为TDD

猜你在找的设计模式相关文章