我偶然发现了这个开源项目假很容易,我不得不承认,它看起来很有趣,但是我有我的疑惑,什么是外商投资企业之间的区别假货,说起订量嘲弄?对特定用途的任何一个更好呢?

编辑:

这是关于这个新的框架,将使它比发言权起订量?

有帮助吗?

解决方案

需要明确的是,我创建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>();

假冒模拟所以我工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top