问题标签 [fakeiteasy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3190 浏览

c# - 如何断言一个方法只被调用一次?

编辑解决方案:

0 投票
1 回答
827 浏览

fakeiteasy - 如何使用 FakeItEasy 更新参数的属性

我有一个界面,其中包含一个成员,如下所示:

我正在使用 FakeItEasy 创建一个模拟以传递给我的一个课程。

我正在测试的代码调用此方法,然后检查 SqlParameters 之一的值。调用方法时如何使用 FakeItEasy 设置该参数的 Value 属性?

我明白这可能不是从数据库中获取单个信息的最佳实践,但我正在使用现有的存储过程,其中一些具有 OUT 参数。

0 投票
4 回答
4171 浏览

c# - 伪造/模拟接口会给出“没有默认构造函数”错误,这怎么可能?

我正在尝试编写存储库实现的单元测试。该存储库使用 RavenDB 作为数据库。对于单元测试,我想模拟 RavenDB 部分。为了创建模拟(假货),我正在使用 FakeItEasy。我认为模拟/伪造不会有任何问题,因为 RavenDB API 是通过接口访问的。

但是,在尝试实例化特定模拟时,我确实遇到了问题。我的单元测试代码的相关部分如下所示:

当实例化 IRavenQueryable 假我得到一个异常。这是来自 Xunit.net 运行器的日志:

“没有找到默认构造函数”没有任何意义,因为我试图伪造的是一个接口。有没有人建议问题可能是什么?

0 投票
3 回答
1849 浏览

fakeiteasy - 使用表达式树作为参数约束

我可以在 FakeIteasy CallTo 断言中使用表达式树作为参数约束吗?

给定具有以下签名的接口上的方法:

像这样在代码中调用:

我想到一个单元测试做这样的事情:

然而,这会产生一个警告:尝试明确指定类型参数

我目前不得不使用不理想的 Ignored 属性。

0 投票
2 回答
2787 浏览

c# - FakeItEasy 中的 Dummy 用于什么?

FakeItEasy 中的 Dummy 用于什么?它与 A.Fake 或 A.Ignored 有何不同?

谢谢 :-)

0 投票
2 回答
4999 浏览

.net - FakeItEasy 创建一个假的类

我最近尝试使用 FakeItEasy,但如果不解决许多怪癖,我无法从具体类创建 Fake。

我尝试了以下方法:

这导致找不到具有匹配参数异常的构造函数

接下来我尝试了:

这导致了类似的错误。

最后我尝试了:

这让我最终创造了假货。我很困惑为什么大多数伪造具体类的例子都暗示这比我发现的更容易?为什么使用记录的方法,上面的试验#2,没有工作?

伪造没有记录的具体类是否有一些限制?

0 投票
1 回答
1979 浏览

fakeiteasy - FakeItEasy 和“参数”参数

我有一个带有以下签名的方法。

此方法在名为 IDal 的接口上定义。

在我的单元测试中,我写了以下内容:

测试运行时,签名与第二个参数不匹配。我尝试将其更改为:

但这也没有成功。我可以让它工作的唯一方法是使用:

我希望能够指定第二个参数的值,这样如果有人更改它,单元测试就会中断。

0 投票
1 回答
8671 浏览

c# - 使用 FakeItEasy,如何获取假属性上设置的值?

使用 FakeItEasy,我试图捕获假对象上的属性值设置:

首先是界面:

然后是单元测试的片段:

并且拥有

不知道用什么来代替??????

0 投票
3 回答
5207 浏览

c# - 使用反射调用静态泛型方法将 Lamba 作为参数

是否可以通过反射编写以下代码?

其中o是:

WithArgumentsForConstructor在哪里:

Foo 类是:

我所做的是:

0 投票
3 回答
1166 浏览

coding-style - FakeItEasy 回调实现

我如何翻译这个起订量代码:

进入FakeItEasy