假货不是嘲弄更好? [关闭]
-
25-09-2019 - |
题
我偶然发现了这个开源项目假很容易,我不得不承认,它看起来很有趣,但是我有我的疑惑,什么是外商投资企业之间的区别假货,说起订量嘲弄?对特定用途的任何一个更好呢?
编辑:
这是关于这个新的框架,将使它比发言权起订量?
解决方案
需要明确的是,我创建FakeItEasy所以我绝对不会说一个框架是否比其他更好的,有什么我能做的就是点出一些差异和激励的为什么的我创建FakeItEasy。功能上有起订量和FakeItEasy之间没有大的区别。
FakeItEasy没有“可核实”或“预期”,然而它有断言,这些总是明确地在测试的最后说,我相信,这使测试更容易阅读和理解。它还可以帮助初学者避免多次断言(在那里他们将设定在许多来电或模拟对象的期望)。
我用犀牛嘲笑之前,我很喜欢它,尤其是在AAA级语法介绍我不喜欢起订量的流畅API更好不过。我不喜欢用起订量是“模拟对象”,你必须到处使用mock.Object,我喜欢用“自然”嘲笑更好犀牛的方法。每个实例的外观和感觉伪造类型的正常实例。我想两全其美的,也是我想看看我能与语法做,当我有绝对的免费手。我个人(显然)认为我创建的东西,是一个很好的组合与来自世界上最好的,但是这是你很容易的时候就正在巨人的肩膀站立。
如已经在这里提到的主要区别之一是在术语中,FakeItEasy首次创建引入TDD和嘲笑初学者和具有约前面嘲笑和短截线之间的差异的担心(你将不得不在途中犀牛)不是非常有用的在我看来。
我已经投入了大量的重点纳入异常消息,应该是很容易分辨什么了when错误的测试只是在寻找一个异常消息。
FakeItEasy具有一定的可扩展性功能,其他框架没有做,但这些都没有很好的记录呢。
FakeItEasy是(希望)在嘲笑具有构造器参数,因为它具有用于消除伪值来使用的机制类强一点。你甚至可以通过实现你的测试项目中的DummyDefinition(Of T)类指定自己的虚拟价值的定义,这将自动被FakeItEasy回升。
的语法是一个明显的区别,其中的一个是更好的是味道很大程度上问题。
我敢肯定有很多其他方面的差异,我算了一下,现在(和公平地说我从来没有用过起订量生产自己,所以我对它的了解是有限的),我认为这是虽然最重要的区别
其他提示
在测试中使用的术语可以稍微混淆。最佳来源解释不同的概念之间的区别是嘲笑由Martin Fowler是不是存根。总之,假是描述两个存根和嘲笑的总称。
在嘲笑的术语可以是混乱 - 有时是相当直观
因此,不少人提出了一个简单的,新的术语,在这里你只有假货,嘲笑和存根。
假的是所有可能的各种测试双打,无论他们来自哪里以及如何使用它们的总称。结果
除此之外,假货仅沿一个单一维度区分:他们是否会影响测试结果与否;或者,换句话说:是否必须设置返回值为假,其测试执行过程中以某种方式使用,或者它是一个“沉默”对象,它仅用于满足一些依赖性< BR>
<强> 存根 强>它是 '沉默' 对象。
<强> 模拟 强>是积极参与在测试执行
除此之外,没有进一步的区分 - 这肯定有它的历史功绩,但现在主要是反直觉和跑位,这是一种混淆测试驱动开发的非常重要的概念。
关于之间的比较的起订量和<强> FakeItEasy 强>:两个框架的在很大程度上是相同的强>从概念的角度来看 - 的差异仅在API和在术语强> ...
托马斯
从我点视图假的不会取消莫克例如我使用开发魔术假假DAL和业务层和在相同的时间我使用模拟在MVC为HttpContext的
var repoistory = new FakeRepository<ProductTypeForm, VendorForm>();
repoistory.Save(productTypeForm);
this.FillDropDown(new FakeRepository<VendorForm>());
在前面的代码开发魔术假将保存ProductTypeForm并从中检索开发魔术假的VendorForm并将其链接到ProductTypeForm,该保存操作可以是永久的
有关开发魔术假更inforamtion看到它CodePlex上: http://devmagicfake.codeplex.com
碲测试此方法,我们必须模拟的HTTP上下文
var context = new Mock<HttpContextBase>();
var request = new Mock<HttpRequestBase>();
假冒模拟所以我工作