首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对值对象进行单元测试

对值对象进行单元测试
EN

Stack Overflow用户
提问于 2010-07-25 19:57:49
回答 6查看 2.4K关注 0票数 3

有必要对一个值对象进行单元测试吗?你会怎么做呢?

以这个对象为例:

代码语言:javascript
复制
public class TeamProfile
{
    public string Name { get; set; }

    public int Wins { get; set; }
    public int Losses { get; set; }
    public int Draws { get; set; }
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-25 20:19:41

答案是一种观点。我会说不是。但是,在日常工作中确实会出现这样的问题,我理解这个问题,所以让我再给出一些意见:

我会根据具体情况来判断。如果你认为“我的单元测试例程可以全部测试”(并依赖它),并且你认为上面的例程可能会朝着更复杂的方向改变,那么答案是肯定的。像这样的问题,我有时会回答“是”,但过了一段时间才发现这真的是言过其实了。然后,在其他情况下,我会判断“哦,不,伙计,这真的是言过其实了”,但后来才发现有一个方面我从来没有想过。

如何测试?作为所有测试用例:定义输入和预期结果。设置它。把它拿过来。检查get是否为您设置的内容。

票数 3
EN

Stack Overflow用户

发布于 2011-06-17 16:08:49

有一篇关于值对象及其介绍和测试的优秀文章,作者是Dan Bergh Johnsson

为了清楚起见,我必须重申,给出的示例不是值对象。http://martinfowler.com/bliki/ValueObject.html

它特别是一个命令、消息或者更有可能是一个(DTO)数据传输对象,正如其他人所提到的,所提供的类没有要测试的行为。

票数 3
EN

Stack Overflow用户

发布于 2010-07-25 20:01:14

我不认为它本身是“必要的”,但它确实保护了您,以防您在某些时候向setter添加逻辑(例如:当尝试负的Wins/Losses/Draws时抛出异常,因为您没有使用无符号整数)。

如何测试?简单:调用setter,调用getter,验证值是否为您存储的值,或者抛出您期望的异常。

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

https://stackoverflow.com/questions/3329095

复制
相关文章

相似问题

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