1
7
就在我头顶上… 虽然您对add的测试实际上只测试框架:
你的回信也是这样:
这本书有一个很好的清单 Pragmatic Unit Testing (好书,强烈推荐)
|
2
4
以下是一些想法: 积极的
否定的
作为TDD的初学者,我发现了这本书 Test-Driven Development By Example 成为一个巨大的帮助。其次,罗伊·奥舍洛夫有一些好的 Test Review 视频教程,看看。 |
3
1
在我回答之前,让我声明我对单元测试还比较陌生,决不是专家,所以用一粒盐来处理我所说的一切。 但是我觉得你的单元测试基本上是多余的。许多方法都是简单的传递,就像加数方法只是对基础列表方法add的调用一样。不测试代码,测试Java库。 我只推荐包含您编写的逻辑的单元测试方法。避免测试像getter和setter这样明显的方法,因为它们在最基本的级别上运行。这是我的理念,但我知道有些人确实相信测试显而易见的方法,我只是碰巧认为这是毫无意义的。 |
4
0
像这样很好。我个人喜欢给我的测试取一些更具描述性的名字,但这更多的是个人偏好。 您可以使用模拟来测试所测试的类的依赖项,EntryReportory是正在测试的类,因此无需模拟,否则您将最终测试模拟实现而不是类。 只是举个简单的例子。如果EntryReportory将使用后端数据库来存储条目而不是列表,则可以为数据访问注入模拟实现,而不是调用真正的数据库。 |
5
0
这看起来是一个很好的开始,但是您应该尽可能地测试“边界”案例。考虑一下什么可能导致方法失败-传递一个空条目来添加或删除是有效的吗?尝试编写测试来练习所有可能的代码路径。如果您对代码进行任何更改,以这种方式编写测试将使您的测试套件在将来更加有用。 另外,对于每个测试方法来说,将测试对象保持在调用它时的状态也是很有用的。我注意到TestFetchEntry方法向EntryReportory添加了一个元素,但从未移除它。使每个方法不影响测试对象状态,可以更容易地运行一系列测试。 |
6
0
您不应该模拟IEntryRepository,因为实现类是正在测试的类。你
可以
想嘲笑一下
您可能还需要一些测试来确保插入条目时插入了正确的条目。同样,使用delete——插入几个条目,然后删除一个,并确保删除了正确的条目。一旦你想出了让代码做你想做的事情的测试,继续思考你可能会把编写代码搞砸的方法,并编写测试来确保这些不会发生。当然,这个类非常简单,并且您可能能够说服自己,您拥有的驱动行为测试已经足够了。不过,测试边缘案例和意外行为并不需要太多的复杂性。 |
7
0
对于一个TDD初学者和这门特殊的课程,您的测试是可以的。+1.努力。 一旦你进入了更复杂的场景,包括依赖注入和模拟,就发布另一个问题。这是事情变得非常有趣的地方;)。 |
8
-1
整体看起来不错。您应该使用事务(或在TestInitialize中创建存储库的新实例)来确保测试是真正隔离的。 也要使用更具描述性的测试方法,比如当一个新的实体被添加到一个入口的报表中时,对象的总计数应该增加。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |