首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要为这个小方法做哪些测试?

要为这个小方法做哪些测试?
EN

Stack Overflow用户
提问于 2010-12-04 04:01:12
回答 7查看 186关注 0票数 5

我目前有以下方法:

代码语言:javascript
复制
public void SetNewRandomValue() {
   double newValue = numberGenerator.GenerateDouble(
                             genesValuesInterval.MinimumValue,
                             genesValuesInterval.MaximumValue
                             );

   this.value = newValue;
}

决定对此方法进行多少测试(以及哪些测试)的指导原则应该是什么?我目前已经完成了以下工作(仅在实现该方法之后--即,不是test-first):

代码语言:javascript
复制
var interval = new Interval(-10, 10);
var numberGeneratorMock = new Mock<INumberGenerator>(MockBehavior.Strict);
var numberGenerator = numberGeneratorMock.Object;

double expectedValue = 5.0;

numberGeneratorMock.Setup(ng => 
        ng.GenerateDouble(interval.MinimumValue, interval.MaximumValue))
        .Returns(expectedValue);

var gene = new Gene(numberGenerator, 0, new Interval(-10, 10));
gene.SetNewRandomValue();

Assert.AreEqual<double>(expectedValue, gene.Value);

这基本上只测试了一种情况。回归测试我会说,我想不出一种方法来把代码搞乱,把它变成功能不佳的代码,而仍然有测试通过,也就是说,我认为这个方法看起来被很好地覆盖了。

你对此有何看法?你将如何处理这个小方法?

谢谢

EN

回答 7

Stack Overflow用户

发布于 2010-12-04 04:07:52

如果您的测试框架有可用的代码覆盖率,我会使用您使用的任何测试工具来检查代码覆盖率。

我个人喜欢使用Microsoft Testing ToolNUnit Testing Framework。然后,我可以右键单击我的测试项目和Test with NCover (在使用NUnit时),这将运行测试,并告诉我每个对象和测试覆盖的代码百分比。

我要说的是,当你检查完代码覆盖率时,你的代码很可能会得到很好的测试。

票数 2
EN

Stack Overflow用户

发布于 2010-12-04 04:20:08

我推荐使用Pex --它确实可以帮助生成你想要的那种单元测试(即在给定方法和返回值的情况下,找出不同的潜在路径和结果)。

票数 1
EN

Stack Overflow用户

发布于 2010-12-04 04:38:19

这个测试看起来没问题。关于SetNewRandomValue,您可以真正断言的唯一一件事是,Value成员是在之后分配的。您已经模拟了对GenerateDouble的调用,并验证了Value包含预期的数字,因此您应该很好。

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

https://stackoverflow.com/questions/4349398

复制
相关文章

相似问题

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