问题标签 [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 投票
2 回答
1885 浏览

c# - 如何使用 FakeItEasy 断言事件已被订阅?

我有一个包含事件的假类。我的代码应该订阅该事件,我想测试它。我正在将 FakeItEasy 与 NUnit 一起使用,并且我正在寻找一种方法来检查我的代码是否确实订阅了该事件。

谢谢!

0 投票
1 回答
1403 浏览

mocking - 你如何存根调用来获取属性?

考虑以下界面...

我试图在fakeiteasyget中删除对这个属性的函数的调用。

被测系统的 Foo() 方法只返回 MyProperty get 属性调用的值。不幸的是,这个测试总是失败。调试时,该get属性似乎总是​​返回 false。

如何存根get属性调用的返回值?

编辑- 添加 MySUT 类的代码(根据评论中的要求)

0 投票
1 回答
1306 浏览

c# - 在 FakeItEasy 中使用预先存在的值存根参数

这有点奇怪。我试图存根一个有参数的方法,我不关心参数是什么,所以我忽略了参数。它看起来像这样:

当像这样调用存根方法时,这没有任何问题:

target但是,它在预初始化时不起作用。例如:

当我检查Tag假货时,我可以看到输出参数正在被记录,<NULL>所以我怀疑当输出目标已经设置为某个值时它们不匹配。我已经尝试ignored在我的测试中设置为new List<Foo>()并且也尝试过A<List<Foo>>.Ignored,但都没有对结果产生任何影响。

所以我的问题是,如果 out 参数目标已经有一个值,是否有人知道如何存根带有 out 参数的方法?

0 投票
1 回答
4846 浏览

c#-4.0 - FakeItEasy 的第一步和 Action 类型的问题

我有以下(这里是简化的)代码,我想用FakeItEasy进行测试。

我想测试是否ServiceException被抛出,所以我像这样设置我的测试

使用以下代码

我收到以下消息

当前代理生成器无法拦截指定方法,原因如下: - 无法拦截密封方法。

如果我直接在服务上调用该方法,例如

我收到这条消息

这是一个 DynamicProxy2 错误:拦截器试图为没有目标的方法“Void TransactionalExecutionOf(System.Action)”“继续”。当调用没有目标的方法时,没有“继续”的实现,拦截器有责任模仿实现(设置返回值、输出参数等)

现在我有点迷茫,不知道下一步该怎么做。

0 投票
3 回答
7415 浏览

asp.net-mvc - is it possible to mock/fake an extension method?

I'm using a controller extension, and I tried to mock it using FakeItEasy (v 1.7.4) like this:

but I get this error:

0 投票
2 回答
1120 浏览

unit-testing - 如果在该方法中引发异常时该方法记录错误,则使用 fake 进行测试

enter code here我有一个方法可以在该方法中引发异常时记录错误。该方法在单例中是非静态的。

下面的单元测试代码抛出 NullreferenceException:

解决方案:我必须让我的非伪造方法抛出异常,这就是我所做的。

0 投票
1 回答
4558 浏览

c#-4.0 - 指定的对象未被识别为假对象。问题

我遇到了一个问题,即在一个极其简单的测试中调用 FakeItEasy 失败并出现错误“指定的对象未被识别为假对象”。调用很简单:

伪造同样简单(A.Fake()),并使用一种方法伪造一个接口,该方法接受一个列表并返回一个列表。在调试模式下,我看到 myService 的实例属于 {Fake IMyInterface} 类型。无论如何,这个问题真的让我很困惑,在此先感谢您的帮助。

更新:

这是我自己的错误,我需要打电话说:

0 投票
2 回答
609 浏览

asp.net - 如何使用 FakeItEasy 伪造 System.Security.Principal.IIdentity?

在我的应用程序中,用户通过 WIF 登录。用户的凭据存储在System.Security.Principal.IIdentity. 现在我想测试CreateUser()方法。我必须以某种方式伪造那个对象。我尝试做这样的事情: -extract 方法返回该对象:

然后在测试文件中做这样的事情:

但它不起作用。任何想法如何以最好的方式做到这一点?

0 投票
1 回答
1505 浏览

generics - 如何使用 FakeItEasy 伪造通用方法调用?

我在伪造一个IDbConnection并且我想伪造对QueryOne<T>()Dapper分机)的呼叫,但是这样做时我得到了一个NullReferenceException

这是我的代码:

是否可以模拟通用方法调用,FakeItEasy或者为什么我会收到异常?

提前致谢...

基督教

0 投票
3 回答
10383 浏览

c# - 如何使用 xUnit、SubSpec 和 FakeItEasy 测试抛出的异常

我正在使用 xUnit、SubSpec 和 FakeItEasy 进行单元测试。到目前为止,我已经创建了一些积极的单元测试,如下所示:

但是现在我想写一些负面的单元测试并检查某些方法没有被调用,并且抛出异常

例如

我可以看到 FakeItEasy 有一个 MustNotHaveHappened 扩展方法,而 xUnit 有一个 Assert.Throws 方法。

但是我怎么把它们放在一起呢?

我要测试的异常应该在调用 Save 方法时发生。所以我猜我应该在 presenter.Save() 方法调用周围包装一个 Assert.Throws 方法,但我认为应该在 .Do(() => ...

您能否告知我的单元测试是否应该如下所示或其他内容?

非常感谢