问题标签 [justmock]

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 投票
0 回答
60 浏览

c# - JustMock 实体框架更新记录

我已经阅读了 JustMock 上的示例(我们有付费版本仅供参考),但在更新记录(不添加)方面遇到了困难。

我有一个 ILogRepo

我有一个 LogInteraction

我已经模拟了一个假的 LogEntries(它是一个 IList)。最后但并非最不重要的测试


在我的测试中,我的 _mockLogRepo 没有被我的 LogInteraction 更新。单步执行代码一切似乎都很好。如果我检查上下文并查找更改,则返回 false。我认为我已经很好地匹配了 Telerik 网站上的示例,但我只能找到有关添加(以及通过推断、删除)的信息。但是由于这两个是实际方法并且更新不在实体框架中,所以我有点不知所措。我的代码将在生产中工作,但我希望它也能在测试中工作(有点意思)。

0 投票
2 回答
322 浏览

c# - JustMock 同一界面的多个 Mocks

在我们的解决方案中,我们曾经有一个非常古老的 JustMock 版本。我们编写了大约 7000 个测试,有时会出现一种模式是为所有测试用例设置某个接口的默认模拟,并在某些测试中“覆盖”该默认模拟。

这意味着在几百个测试中,我们创建一个模拟并安排它,然后创建另一个相同类型的模拟并安排它。然后我们将对第二个模拟进行断言。

几个月前我们更新到当前版本,现在这些相同类型的多个模拟似乎不再工作了。举个例子。我创建了两个相同类型的 Mocks 并断言第二个 mock 被调用一次。使用 2012 版的 JustMock,此测试失败,但使用更新的版本则不会失败。

那么 JustMock 在做什么,这会阻止我制作多个相同类型的模拟并对它们进行断言?为什么要这样做?

0 投票
1 回答
147 浏览

unit-testing - 断言属性已在模拟类中设置

我正在使用MockingContainer<T>来自动设置我的依赖项。如何断言这些依赖项之一的属性已设置?

以下失败,调用 0 次,这是有道理的,因为我相信它正在查看 Getter,而不是 Setter。那么如何断言 Setter 是由被测单元调用的呢?

根据文档(对于不熟悉但希望尝试协助的任何人,位于JustMock DocsMock.ArrangeSet(lambda) )看来我应该使用MockingContainer<T>.

如果情况变得更糟,我就不能使用MockingContainer<T>,但我宁愿不必为了适应一个特定的单元测试而重构我的测试套件。


并不是说它与问题真正相关,但如果有人需要它,这里有一个存根ApiInteractionService

0 投票
2 回答
75 浏览

c# - 另一个类中的 JustMock 助手在测试中返回 null

我将最常创建的模拟移动到扩展和帮助类中,以便能够在多个测试中重用它们。当事实证明它们明显依赖于上下文并且坐在其他地方时不起作用时,我感到非常惊讶。

此代码演示了该问题:

有什么方法可以使JustMock封装在其他类中的代码也可以工作吗?

0 投票
0 回答
52 浏览

c# - JustMock 捕获 CallOriginal 的返回值

我想知道是否有一种方法/解决方法可以从 JustMock 中的 Arrange 调用中捕获输出。

例如,这是我想做的事情:

我实际上已经做了类似的事情来捕获参数,但正如我所说,我无法弄清楚如何捕获返回值。以下是如何捕获参数:

编辑:找到了一个(荒谬的)解决方案。留下这个问题以防其他人需要它,或者如果其他人找到更好的方法。

这不适用于多线程应用程序,但它适用于我需要的东西。

0 投票
0 回答
63 浏览

c# - 无法使用 JustMock 模拟扩展方法

我正在尝试使用justmock模拟扩展方法。由于某种原因,它会引发以下错误:

“测试方法 TestProject1.JustMockTest.TestMethod 抛出异常:Telerik.JustMock.Core.ElevatedMockingException:无法模拟 'TestProject1.Foo'。必须启用探查器才能模拟、安排或执行指定的目标。”

我怎样才能解决这个问题?

0 投票
1 回答
259 浏览

c# - 使用 JustMock 模拟参数

我正在编写单元测试,我需要使用以下签名模拟目标方法依赖项之一的 out 参数:

我正在使用JustMock并尝试使用DoInstead安排子句,但似乎不是那么明显。

请告诉我如何实现这一点,非常感谢提前。

0 投票
3 回答
82 浏览

c# - 如何模拟结构的多个实例?

我有一个struct我想嘲笑的。在更复杂的测试中,我需要这个结构的几个实例,每个实例都有自己的行为。为此,我创建了一个辅助方法。

当我调试多次调用此方法的测试时,似乎该Arrange调用已被结构的所有实例覆盖(或者我使用的是结构模拟而不是实例模拟?)。

我试过了:

但无济于事。如何获取结构的多个实例?

我正在使用:Microsoft Visual Studio Enterprise 2017 版本 15.9.17 VisualStudio.15.Release/15.9.17+28307.905 Microsoft .NET Framework 版本 4.8.03761

安装版本:企业版

JustMock 2020.1.219.1 Telerik JustMock 扩展。

添加示例

编辑:交叉发布

我已经在 Telerik JustMock 论坛上交叉发布了这个问题

编辑:许可证扩展

我的试用许可证被慷慨地延长了。我已经更新了答案以反映这一点。

0 投票
1 回答
45 浏览

c# - JustMock 将按顺序返回许多返回

我正在安排在单元测试中调用一个方法,如下所示

1 和 2 将始终按顺序返回还是需要 InSequence() 链?

ReturnsMany 将按顺序返回值还是需要显式 InSequence?

文档:https ://docs.telerik.com/devtools/justmock/api/overload_telerik_justmock_helpers_multiplereturnvaluechainhelper_returnsmany

0 投票
0 回答
178 浏览

c# - Mock.Arrange 它实际上做了什么?

我是测试新手,也是 JustMock 新手。

我已经写了我的第一个测试。

这是它正在测试的功能。

测试在失败时有效。

我不明白安排应该做什么。