问题标签 [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 回答
423 浏览

c# - Rhino 用 FakeItEasy 模拟“期望”

我有一个数据库操作对象作为我的 UUT(被测单元)的依赖项。因此,我想让它成为一个严格的模拟,因为我还想确保 UUT 不会调用任何其他可能导致数据库更改的方法。

在犀牛模拟中,我做了以下事情:

  1. 我从 db 对象做了一个 strictmock
  2. 我在安排中做了一个 .Expect 子句
  3. 我在 Assert 中调用了 VerifyAllExpectations

但是,当我想在 FakeItEasy 中执行此操作时,如果不重复代码,我找不到如何执行此操作。我尝试将 CallsTo()+MustHaveHappened() 部分放在 Arrange 中,但是我的测试失败了。如果我将 CallsTo()+MustHaveHappened() 部分放在 Assert 中,那么我的测试也会失败,因为对严格的伪造进行了意外调用。这可以在不将 CallsTo 调用同时放入 Arrange 和 Assert 的情况下完成吗?

0 投票
1 回答
373 浏览

c# - c#中的变量转换错误

错误-->无法将“Castle.Proxies.ObjectProxy_2”类型的对象转换为“Vetserve.Messages.Shared.ICommand”类型。

在 commandBus.Send((ICommand)command, commandRequest.MetaData); 线

嗨,当我尝试使用 nunit test 进行测试时,此方法有先前的错误,我该如何解决

这是我的测试课

0 投票
2 回答
2157 浏览

c# - 将 FakeItEasy 与 Linq 表达式参数一起使用

我正在尝试学习如何使用 FakeItEasy,并想尝试将它与我有权访问的旧项目中的一些数据访问代码一起使用。虽然 FIE 的基础知识看起来很​​简单,而且我能够处理简单的案例,但这让我很难过。

该系统使用实体框架,其中一个数据管理类处理用户,我试图弄清楚如何仅测试基本GetUserByUserNumber功能。我可以在实例化 UserDataManager 类时使用假IPersistenceManager<User>的,然后调用该GetUserByUserNumber方法,但是检查userPersistenceManager.ReadCustom被调用的断言总是失败。

我尝试在 fake 上调用 Delete 方法userPersistenceManager,并且该断言工作正常。我认为这与该ReadCustom方法作为其第一个参数的 Linq 表达式有关。我只是不知道应该如何处理。对此的任何帮助将不胜感激!

这是我正在尝试测试的 UserDataManager 中的方法:

这是我要确保调用的 IPersistenceManager 方法:

这是我的单元测试:

0 投票
2 回答
955 浏览

c# - 如何测试一个 Func是否已使用 FakeItEasy 框架调用?

如何使用 FakeItEasy 框架检查是否调用了 Func?

例子:

0 投票
1 回答
732 浏览

c# - FakeItEasy 测试域服务 + UnitOfWork

我开始对单元测试进行一些实验,以便我们可以将它们包含在我们的领域层中。但是我不知道我是否走在正确的道路上,因此我将解释我目前正在做什么,看看我是否走在正确的轨道上。基本上架构如下所示,域层包含域模型和域服务(例如,用户类和用户服务类)。然后域层与实现通用存储库模式和工作单元的 DAL 通信。它的构造函数中的每个域服务类都接受一个 IUnitOfWork 接口,如下所示:

为了创建单元测试,我决定使用 FakeItEasy 框架。所以在 UserServiceTest 类中我做了以下事情: -

当我运行测试时,它们通过了。这是实施单元测试的正确方法吗?在我尝试不同的方法之前,FakeItEasy 因 ProxyGenerator 异常而失败。我在做什么是这样的: -

这引发了以下异常:-

任何反馈将不胜感激。谢谢!

0 投票
2 回答
2881 浏览

c# - 如何使用 FakeItEasy 伪造 Enumerable 类

我正在学习为我的代码使用/执行/编写测试,并开始为我的假/模拟对象使用 FakeItEasy,现在我遇到了一个问题:

我有以下实现的类和实现的IEnumerable内部类IEnumerator(下面不完整的代码):

我想在我的测试中使用 FakeItEasy 并“伪造”它的迭代行为,我尝试了以下代码,但它不会在需要时自行迭代(就像没有元素一样跳过 foreach):

例如,试图搜索网络,但找不到任何东西。现在我的问题是如何配置stringFake.GetEnumerator()返回正确的对象,以便迭代可以工作,还是我在这里做错了什么?

任何帮助,将不胜感激。

谢谢

0 投票
1 回答
360 浏览

fakeiteasy - 如何找到从 FakeItEasy 返回的 Fake 对象的基础类型?

我弄完了

然后我想在假货上使用“反射”来将依赖项与我的依赖项容器注册为 MyType。但是,我无法弄清楚如何获得底层的伪造类型。任何指针?

0 投票
2 回答
3173 浏览

c# - How to test for a Match with FakeItEasy on a predicate call?

I have the following call in my code:

and I am trying to use FakeItEasy to verify that when the dateTimeFilter has a value, the SearchFor(…) is being called within my repository with the correct Function.

So my test looks something like this:

Which is not correct. What would be a way to test the whether or not I am calling SearchFor(…) with the correct expression?

The actual value being passed into SearchFor(…) is DateTime.MinValue so I changed my assertion to:

which is failing and the exception I am getting is

and I am not sure what I am doing wrong...

0 投票
1 回答
124 浏览

autofac - 尝试从假 IContainer 解析时出现 ComponentNotRegisteredException

我正在尝试测试解决类型实例的程序的一部分。为此,我创建了一个假 IContainer:

但是,当我到达这行代码时:

它抛出了一个 ComponentNotRegisteredException!

假的 IContainer 怎么知道抛出那个异常?伪造的容器应该只是接口的伪造,而不是实现的伪造。这里发生了什么?

0 投票
2 回答
6786 浏览

c# - 使用 FakeItEasy 在方法中模拟方法

如何模拟/伪造另一个函数中调用的函数的结果?通常 Test2 将是我不喜欢获取真实数据的 DataAccess 方法。我喜欢我的 unittest 测试的是业务逻辑。

这就是我现在所拥有的,但它根本不起作用。总和始终断言为 5!

然后我有一个单元测试,我想在我的“业务逻辑”上运行。