所以我有一个工厂类,我试图找出单元测试应该做什么。从这
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。