2010-08-30 42 views
0

所以,我在想,我得出的结论是,当单元测试,即使一个人想要主要基于行为类型测试(例如,模仿),我最终总是必须做至少针对叶类(在依赖图中)进行基于状态的测试。依赖关系图中的叶类只能测试状态?

这是正确的吗? PS:我当然不包括诸如Java/C#API库之类的稳定的依赖项,我们必须使用它。

回答

1

是的,测试依赖关系图中叶类的唯一方法是执行传统的基于状态的单元测试(因为他们没有协作者,因此没有观察钩子),因此执行传统的基于状态的单元测试(“Fowler术语中的测试”为classical)。

但这是一件好事:有机会编写基于状态的测试是一个庆祝的原因!传统的黑盒单元测试比依赖实现细节的行为测试更容易编写,需要更少的设置代码,并且经常中断。

一个通常只进行行为测试的必要性。

+0

我怀疑你的“行为测试”和“基于状态的测试”的概念与“吞食极乐世界”如何使用这些术语完全相反。 – 2010-08-30 19:16:31

+0

@Michael - 我当然不能排除这个问题,但是如果是这样的话,这个问题意味着什么? – 2010-08-30 19:43:09

+0

我正在使用花的定义,这可能与Jeff的相同。 – 2010-08-30 19:51:57

0

我认为这是一个很好的方法,特别是如果这些类被频繁使用。

+0

我不确定在问题的背景下我明白你的意思。 – 2010-08-30 19:04:11

+0

请参阅Jeff Sternal的更完整的答案。 – Bernard 2010-08-30 19:36:08