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

c# - 使用 JustMock 模拟 ConfigurationManager.AppSettings

按照以下说明操作:http ://www.telerik.com/help/justmock/advanced-usage-static-mocking.html

我没有成功模拟 ConfigurationManager.AppSettings。这是我正在使用的代码...

这是我收到的错误。

Assert.AreEqual 失败。预期的:。实际:<(null)>。

是否可以模拟这个对象?

[编辑] 我也在使用试用版。

0 投票
2 回答
163 浏览

c# - 有没有更好的方法来测试这种方法?

我想在下面的方法上运行一些单元测试,我将一个模拟接口(vehicleObject)传递给ProcessVehicles,但是一旦它被传递,它就会被确定车辆类型重新分配,所以我的模拟对象没有用。我的第一个想法是创建一个布尔值来确定是否 应该运行DetermineVehicleType并将其添加为参数,但这听起来很混乱。有没有更好的方法来解决这个问题?

注入 Mock 对象的方法:

原始代码:

注意:我无法在调用DetermineVehicleType之前检查vehicleObject 是否为null,因为在实际使用该类时它可能不为null。从长远来看,也许完全重构是答案,在这一点上,这不是我正在寻找的答案,也许没有其他选择。

方法确定车辆类型是私有的

注意:我知道有代码异味,这是当前有效的遗留代码。我想围绕它进行测试而不是改变它,所以它看起来很漂亮,然后在生产中中断。完全重构可能是我只想确保模拟工具没有其他解决方案的唯一选择。

0 投票
3 回答
3727 浏览

c# - 模拟具体 FileInfo 对象

我想模拟 System.IO.FileInfo.Extension 方法并让它返回“.xls”,但我什么也做不了

此示例适用于删除但不适用于扩展(代码不会编译)

我也尝试过使用这个例子,但代码是错误的。

  • 我有 JustMock 的完全许可副本
  • 我正在使用 VS 2010 .net 4.0

编辑:我知道我可以设置一个接口并以这种方式进行测试,但付费版本的 JustMock 应该模拟具体的类。既然我付了钱,我想知道怎么做。

0 投票
2 回答
1645 浏览

unit-testing - 相当于 FakeItEasy 中 JustMock 的 ReturnsCollection()?

使用JustMock,我可以像这样轻松地在 Linq to SQL 中模拟带有列表的 DataContext 表,其中一个 IEnumerable 通过 ReturnsCollection() 代替每个 DataContext 的表,允许我插入假数据:

这将是正在测试的方法:

我正在寻找某种方式来执行相同的魔法,让我可以IEnumerable<T>代替Table<T>用于测试 Linq to SQL 的目的,最好是在 FakeItEasy 中。

0 投票
1 回答
1299 浏览

c# - 嵌套私有方法单元测试

我如何为这种情况编写一个刚刚模拟的单元测试?

因此,当我模拟 Method1 时,我需要再次在内部模拟 Method2。

例如,我使用表单的私有访问器来创建单元测试。

然后使用该 target.Method1 在我的单元测试中调用。

0 投票
1 回答
674 浏览

c# - Telerik JustMock 在尝试模拟 SPServiceContext 时抛出异常

我正在尝试为使用 UserProfile 管理器的 Sharepoint 2010 Webpart 编写一些单元测试。为了模拟 UserProfileManager,我还需要模拟 SPServiceContext。

当我尝试分配我的模拟变量时,如下所示:

抛出以下异常:

在程序集“Telerik.JustMock, Version=2013.1.507.0, Culture=neutral, PublicKeyToken=721b6c5bc0326b3a”中键入“Telerik.JustMock.MockException”未标记为可序列化。

知道我做错了什么吗?

0 投票
1 回答
3581 浏览

c# - JustMock如何忽略在被测方法内部进行的方法调用

我正在使用 JustMock 来帮助编写单元测试,并得出了一些我认为相当简单但找不到答案的东西。我不能发布任何代码,但我会尽力解释。我想出了一个例子来展示我正在尝试做的事情。我想测试 Class1 的 Close 方法,而不调用 Class2 的 CloseConnection 方法。我尝试在 Class2 的 CloseConnection 实例上使用 Mock.Arrange,但我相信它特定于您在哪个实例上进行排列。在我设置单元测试和模拟(示例代码下面的模拟代码)然后在 Class1 的 Close 方法中进行调试后,它仍然从 Class2 调用 CloseConnection 方法,我认为是因为 Class2 依赖项是在 Class1 的构造函数中创建的,我没有访问权限直接给它。

任何人都知道我如何测试 Class1 的 Close 方法并使用 JustMock 忽略对 Class2 的 CloseConnection 方法的调用?

我努力了:

以及模拟和非模拟类 2 实例和不同的参数(即 Arg.IsAny()),但仍然无法阻止此方法调用的发生。

重构代码对我来说不是一个选项,所以我无法更改它以注入依赖项,我阅读了有关使用 justmock 模拟构造函数的信息,但它似乎忽略了构造函数,而不是让我为 Class1 编写不同的构造函数来使用这样我就可以访问 Class2。

有任何想法吗?

更新 1:Telerik 回到我身边说尝试使用 .IgnoreInstance() 仍然没有阻止对 CloseConnection 的调用。等待 Telerik 的另一个回复。

0 投票
1 回答
563 浏览

testing - 如何使用 JustMock 测试接口事件委托

我是 TDD 和单元测试的新手,我有 JustMock 商业版,还有一周的时间来学习如何使用它。下面是一个接口,一个类和一个通过的测试方法。我必须添加 Class1 faceDoesSomething 才能编译它,我还想做一个安排并断言它确实将动作设置为“微笑”。有办法吗?

编辑:我正在使用一个不使用 JustMock 的示例来使用 JustMock 创建解决方案。我意识到该示例测试委托实际上订阅了该事件,因此我需要在担心它返回什么之前这样做。我通过添加测试方法 ClassRegistersAsListenerForDoesSomethingEvent 修改了下面的代码,使其更接近我正在使用的示例。我相信我错过了一个断言,但我不确定。我知道测试失败了,所以我做对了。

在这个过程中的某个时刻,我是否真的开始在真实类上使用测试,而不仅仅是在模拟上?

0 投票
1 回答
255 浏览

unit-testing - 尝试使用 JustMock 模拟 SharePoint 2010 UserProfileManager 的异常

我正在尝试创建 UserProfileManager 的模拟版本,以便有效地对 Sharepoint 2010 Web 部件进行单元测试 每次运行此代码时,都会在下面抛出异常。当我在 Sharepoint 机器上调试调用 UserProfileManager 的代码时,我已经验证了该功能有效——实际上是两台不同的 Sharepoint 机器。这是有问题的代码:

有没有其他人看到这个问题?

0 投票
1 回答
446 浏览

visual-studio-2012 - “这个版本的 JustMock 已经过期了!” 购买许可证后

我最近购买了 Telerik JustMock 的许可证。Telerik 控制面板在我的已购买产品列表下显示 JustMock。当我尝试在 Visual Studio 的测试资源管理器中运行我的测试并启用 JustMock Visual Studio 扩展时,我收到一个异常消息: Telerik.JustMockExpiredException : This version of JustMock has expired!

我已经卸载了所有 Telerik Visual Studio 扩展,通过 Windows 程序/功能卸载了所有 Telerik,然后重新安装了控制面板,然后是 JustMock,但问题仍然存在。值得注意的是,当我重新安装控制面板时,它记住了我的用户名/密码,所以我猜测某处有一个配置文件错误地缓存了我的信息。

此问题的一个可能根本原因是我在我的个人电子邮件地址下试用 JustMock,但它是由我的公司购买并分配给我的工作电子邮件地址的。我目前正在使用我的工作地址登录控制面板,但没有其他地方可以更改它。

当我通过 JustMockRunner.exe 运行 nunit.exe 时,也会出现同样的问题。