gpt4 book ai didi

ruby - RSpec DSL 是否违反了 Demeter 定律?

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:58 24 4
gpt4 key购买 nike

这可能是一个幼稚的问题,但是 RSpec 的测试 DSL 是否违反了 Demeter 法则?

这是来自 http://rspec.info 的 RSpec DSL 示例:

bowling.score.should eq(0)

从 Demeter 的角度来看,在我看来,这与这个例子没有区别:

user.department.try(:name)

根据 Avdi Grimm 的说法, 违反了 Demeter 法则。

来源:http://devblog.avdi.org/2011/07/05/demeter-its-not-just-a-good-idea-its-the-law/

最佳答案

Demeter 是一项降低风险的指南,其动机是越少越好系统的一部分依赖于其他部分的结构,可能性越小该部分将受到所述结构变化的影响。

您当然可以争辩说 game.score.should eq(0) 是 Demeter违规,但是 should 方法是 rspec 框架的一部分,它是语句 game.score.should eq(0) 的上下文并且不太可能以强制更改此声明的方式进行更改。

也许它违反了 Demeter,也许没有,但 Demeter 旨在解决的风险并不是真的存在。

关于ruby - RSpec DSL 是否违反了 Demeter 定律?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com