问题标签 [shim]
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.
ruby-on-rails - Bundler 因 Rbenv 失败
我继承了一个 rails 2.3.2 应用程序,并让它在 rbenv 下使用 ruby 1.8.7 工作,包括一些旧版本的其他 gems 和软件。
现在我生成了一个 Gemfile 并尝试通过对其运行任何捆绑命令来验证它,例如捆绑检查、安装等,但是这些操作中的任何一个都失败了。我安装了 rbenv bundler 插件,这使它看起来不那么严重,但我仍然无法弄清楚。
我的捆绑器安装:
红宝石:
Rbenv 现在也给我带来了问题:
捆绑器不应该有垫片吗?似乎直接调用了bundler。
我搞不清楚了。如果有人可以帮助我,我会很高兴。
ps:我也刚刚发现:
unit-testing - 使用 Shim 测试私有方法
我正在尝试使用 Shim 来测试我在这个名为 DataSyncCore 的类中的私有方法之一。抱歉,如果这太微不足道了,因为我是 shim 的新手并且无法弄清楚为什么这会给我一个错误,说“属性或索引器 GetEnvironmentString 不能在这种情况下使用,因为它缺少访问器。如何解决这个问题?
这是我的单元测试:
requirejs - RequireJS 模块尝试加载 shim'ed 模块
我在尝试为我组织中的另一个团队编写的一些 javascript 代码创建 RequireJS shim 时遇到问题。该脚本通过一个 noraml HTML 脚本加载,如下所示:
我的 main.js 包含以下内容:
而且我尝试过以多种方式访问自定义模块,但这是我当前的代码:
但是每次页面/应用程序加载时,我都会从 RequireJS 收到一个错误,表明它无法加载app/MyCustomModule.js
(我可以在控制台中看到 404 错误,它试图从服务器请求文件)。我究竟做错了什么?
unit-testing - 使用 Microsoft Fakes 和静态通用方法填充
我需要为单元测试填充一个静态通用方法。但是,我似乎无法让 Fakes 创建 shim 对象。有谁知道如何做到这一点?
特别是,我想填充 Newtonsoft 的 JsonConvert.DeserializeObject<>()
linux - 在 Linux/Unix 中转发 DLL 的等价物是什么?
我有一个动态库,可以跨主要版本更改名称,即版本 3 被命名为 lib3,版本 4 被命名为 lib4,依此类推。
我需要提供一个 shim lib3,它允许旧应用程序以透明的方式使用新库,并且大多数导出的函数不会跨版本更改,因此转发 DLL 看起来非常适合 Windows 上的任务。
Linux/Unix 上是否有等价的东西?
c# - 填空方法
我有以下(遗留的,继承自前辈)VB.Net(框架2.0)类和方法,它们在异常上创建系统事件日志:
我正在尝试在 C#(框架 4.5)单元测试项目中对此进行测试,并且部分逻辑要求是aValue
用逗号分隔的两个数字 - 如果不是,则抛出异常和事件日志。
我设置了以下单元测试以确保正确抛出异常:
这一切都很好,测试通过了,因为逻辑MyMethod
导致了预期的异常。但是,我不希望写入事件日志。那么,我如何 ShimMyUtitlityClass
来拦截呼叫LogError
而不做任何事情呢?
我见过的所有 Fakes 示例都是针对返回假值的方法(并且都是用C# 编写的!)当我尝试实现这样的模式时,它会给出一个错误,即 LogError 没有 getter。
c# - 如何通过 Microsoft Fakes 使用 ConcurrentDictionary (C#) 填充长外部依赖项?
在我需要测试的代码中发现了这样的外部依赖:
var something = GConfig.SConfig[Type.ServiceType1].Names;
这部分的代码是这样的:
我需要消除这种依赖,但我自己找不到完整的解决方案,只有部分:
对于 GConfigIt(和匀场名称):Fakes.ShimGConfigIt.AllInstances.NamesGet
对于匀场 SConfig:Fakes.ShimGConfig.AllInstances.SConfigGet
但我找不到连接,如何完全填充它。
PS 我只是一名测试人员,不能更改现有代码。为了进行更改,我需要说服开发人员这样做(即 GConfig 的额外接口),但他们必须确保这不仅仅是为了“轻松测试”或“测试测试”而进行的更改,他们确实需要这样做。
c# - 为什么 Fakes 不能从预建的 Fakes 项目中正确引用 Fakes dll?
我在尝试从单独的项目中引用mscorlib 假 DLL时遇到问题,如下所述。
我有许多 VS12 解决方案,我正在使用 MS Fakes 为其编写单元测试。根据以下 URL 中的建议,我决定为我的假 Dll 创建一个项目:Microsoft Fakes 中的代码生成、编译和命名约定。这个想法是伪造 DLL 的位置将被本地化,我不需要在我的测试项目中散布大量伪造的 DLL。(我将其称为普通假货库。)
在我当前的单元测试中,我使用来自PresentationCore
,System.Management
和System
. 但是,我使用的 System shims 实际上是 in mscorlib.dll
,更具体地说是 Convert (静态类)和 DriveInfo (密封类)。因为我只需要 mscorlib 中的这两个类(现在),所以我为 mscorlib 创建了以下 .fakes 文件:
对于 PresentationCore 和 SystemManagement,我有类似的 .fakes 文件,这些文件可以清除然后按名称添加类。
但是,在我的测试项目中,当我从我的 common fakes 库中添加 mscorlib.4.0.0.0.Fakes DLL 的引用时,使用 Convert 和 DriveInfo 垫片的测试不会运行。相反,测试方法会引发 Microsoft.QualityTools.Testing.Fakes.Shims.ShimNotSupportedException,命名不受支持的 shimmed 类。使用 PresentationCore 和 System.Management 功能的测试在引用通用假库时仍然有效。
但是,如果我在我的测试项目中直接(以及间接添加 mscorlib)为 System 添加 Fakes 程序集,请在我的测试项目中创建完全相同的 mscorlib.fakes 文件,并添加对本地mscorlib.4.0.0.0.Fakes Dll 的引用,即链接到常见假货库时引发异常的测试运行时不会出现故障。
我使用对象浏览器查看了 common fakes 库中的 mscorlib 伪造 DLL,并将其与本地构建的 DLL 进行了比较,它们似乎是相同的。
有谁知道为什么在 common fakes 库中引用 mscorlib fake 不起作用?
unit-testing - ShimSPWeb().LocaleGet 不可用?
我已经开始研究 VisualStudio 2012 中的新功能,您可以在其中添加虚假的 dll 程序集以进行单元测试。我正在使用 SharePoint 2010,现在我们都很难对依赖于 SharePoint API 的代码进行单元测试。
我为 Microsoft.SharePoint 添加了一个假程序集,效果很好,但我到了需要覆盖方法的地步SPWeb.Locale
。我以为这很容易。我以为会有一种方法,ShimSPWeb.LocaleGet
但没有。
Locale
这是我对我的唯一选择ShimSPWeb
简而言之:应该有一个shimWeb.LocaleGet
可用的。
javascript - IndexedDBShim.js 错误:JavaScript 运行时错误:在严格模式下不允许分配给只读属性
我正在试验 IndexedDB jquery API,因为 indexedDB 与 safari / ipad 不兼容。我刚刚开始使用它并在仅运行 HTML 并且我无法使用文件中的任何内容时出现此错误。我所指的文件是IndexedDBShim
我的 html 看起来像
Test() 函数中没有任何内容。我得到的错误是: 0x800a13b5 - JavaScript 运行时错误: 在 window.indexedDB = window.indexedDB || 的第 1653 行的严格模式下不允许分配给只读属性 window.webkitIndexedDB || window.mozIndexedDB || window.oIndexedDB || 窗口.msIndexedDB;
我用错了吗?
谢谢