TDD中的模拟值

维韦克

在《GOOS》一书中它被告知不要嘲笑值,这让我感到困惑。这是否意味着值没有任何行为?

我对值对象了解不多,但AFAIK值对象是不可变的。是否可以决定何时创建值对象?

拉斐尔

并非所有不可变对象都是值对象。顺便说一句,在设计时,请考虑理想对象只有不可变的字段和无参数方法。

关于启发式,一种有效的方法可以考虑如何使用对象:如果您构建实例,则调用一些方法,然后使用它完成(或将其存储在字段中),这可能不是值对象。相反,如果将对象保留在某种数据结构中,然后将它们与比较,则.equals()可能会有一个value对象对于将用于键Maps的对象尤其如此

值对象应该自己进行自动测试(测试通常很容易读写,因为它很简单),但是没有必要对它们进行模拟:模拟接口的主要实际原因是实现类

  • 通常很难建立(需要很多合作者)
  • 运行非常昂贵(访问网络,文件系统等)。

都不适用于值对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Laravel 5中测试路由,或者尝试“模拟”,或者我不知道TDD

来自分类常见问题

如何在Jest中重置模拟值?

来自分类Dev

Mockito:获取模拟对象中字段的值

来自分类Dev

在执行TDD时,何时实现新的模拟依赖项?

来自分类Dev

如何重构TDD中的测试?

来自分类Dev

TDD Puppet中的Hiera哈希

来自分类Dev

在模拟方法(Moq)中更改参考参数的值

来自分类Dev

如何在bash中模拟从函数返回的任意值?

来自分类Dev

停车场大门模拟中的未知值(X)

来自分类Dev

如何模拟ARIMA中的分布值以绘制成扇形图

来自分类Dev

停车场大门模拟中的未知值(X)

来自分类Dev

在pytest中,如何模拟方法返回你想要的值

来自分类Dev

如何在单元测试中模拟 formControl 值 getTime()

来自分类常见问题

Python模拟中的模拟属性?

来自分类Dev

在Rhino模拟中模拟FirstOrDefault

来自分类Dev

如何检查TDD中是否存在方法?

来自分类Dev

TDD和Laravel 5中View的使用

来自分类Dev

新的Visual Studio vNext / 2015中的TDD

来自分类Dev

关于铁轨中TDD(BDD)的斗争

来自分类Dev

TDD在Rails中:澄清红色-绿色测试

来自分类Dev

模拟-使用值列表中的一个值在匹配器中进行比较

来自分类Dev

如何在Grails中的Config.groovy中模拟值以进行单元测试

来自分类Dev

TDD:如何创建测试初始值的测试

来自分类Dev

使用Jest模拟值的问题

来自分类Dev

角度测试:模拟常量的值

来自分类Dev

模拟对象未更新值

来自分类Dev

如何模拟返回值?

来自分类Dev

JavaScript:使用值模拟点击

来自分类Dev

在带有out参数的NSubstitute模拟方法中返回不同的值