首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TDD -引入字段的测试

TDD -引入字段的测试
EN

Stack Overflow用户
提问于 2017-07-16 22:33:16
回答 2查看 72关注 0票数 0

我的应用程序中有一个名为Offer的实体。它有一些领域,如价格,描述和3-4更多。由于我目前正在学习TDD,我不想在没有测试要求的情况下介绍这些字段。问题是,像title这样的字段没有任何业务意义,因此我可以要求测试如下:

代码语言:javascript
复制
  user creates offer with title "xyz"
  assert that offer has title xyz

还有其他方法来介绍这种领域吗。我甚至应该为这种情况而费心写测试吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-17 06:54:26

在TDD中,您编写功能测试。在您的例子中,字段本身并不重要。您希望实例保留特定的值。对此的测试可以是:

代码语言:javascript
复制
sut.setProperty(value)

assertThat(sut.getProperty(), is(value)

但是我不会为此编写测试,因为它没有真正的功能。您应该有其他使用这些属性的测试,并为其覆盖getter/setter。异常是当getter/setter包含某种逻辑时(例如,值具有上限)。

票数 2
EN

Stack Overflow用户

发布于 2017-07-17 09:21:07

这里的核心方面:好的OOP关注的不是行为,而是状态。换句话说:至少在谈到面向对象的语言时,您不希望字段公开给类的外部。

相反,您可以从行为的角度来考虑--也就是方法。从这个意义上讲,另一个答案是正确的;您宁愿创建getter/setter并验证它们。

这里有一个免责声明:如果可能的话,避免设置者。相反,请确保您的字段只分配一次(由构造函数分配)。换句话说:努力编写不可变的类。

回到我最初的观点:如何实现“字段”是内部实现的细节。这是你不想让外界知道的事情--如果需要的话,你可以自由地改变实现!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45133859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档