我和一个同事正在辩论。我们正在进行一个糟糕的遗留项目,并且正在慢慢添加验收测试。他认为我们应该在 gui/watin 中完成这项工作,然后使用低级库直接查询数据库以获得他所说的“端到端”测试。
我们正在使用 NHibernate,我主张使用 gui/watin 然后使用那些 nhibernate 对象在验收测试中进行断言。他不喜欢 NHibernate 在测试中的依赖性。我的断言是我们已经/应该对 NHibernate 对象进行集成测试,以确保它们以我们想要的方式与 DB 一起工作,此时在验收测试中使用它们来断言正确操作没有任何缺点。我还认为他的低级 sql 依赖会使测试在很多情况下变得脆弱并重复业务逻辑。
我们商店的集成测试基本上意味着它具有依赖关系的单个组件,例如 fileRepository/FileSystem Domain-NhibernateObject/Database。验收测试意味着通过 GUI 进入。单元意味着所有依赖项都具有/可以被模拟/存根,并且您在内存中进行了纯测试,只有被测方法实际执行任何实际工作。让我知道我的 defs 是否关闭。
无论如何,任何关于这个主题的文章/文档/羊皮纸你可以指出我将不胜感激。