问题标签 [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.

0 投票
1 回答
796 浏览

c# - 奇怪的 Shim 行为 C#,除非在测试方法中实例化,否则不使用 Shim

这应该是一个简单的(我是 Shimming 的新手..)

因此,如果没有垫片,此测试将失败,因为没有这样的 url,它将无法解决。使用垫片可以正常工作。问题是,如果然后创建我想要测试的类并调用以相同方式创建 HttpWebRequest 的方法,那么 shim 魔法似乎不起作用,它真的试图解析 url。我之前用 SmtpClient 做过一个类似的测试,这很有效,所以我真的不明白为什么我的方法创建这些对象的行为应该有任何不同。

对此有任何想法/经验吗?

更新 1

我班上的代码:

所以这是一个非常基本的方法

更新 2

刚刚将它添加到我正在测试的类中:

它工作正常..所以其他方法肯定有一些区别..但我当然看不到任何明显的东西。将在/如果我找到解决方案时更新

0 投票
3 回答
1650 浏览

html - IE8 中可用的 D3 替换(带有 D3 和 svg 的图表)

我开发了工作 D3 驱动的图表,就所有其他浏览器而言,没有问题。

但最近在 Internet Explorer 8 中也出现了支持它们的需求。

但到目前为止,我无法在 IE8 中显示此 html。

这些是 D3 中使用的标签:

在过去的 6 个小时里,我浏览了很多材料和问题,包括:

在 IE8 中显示内联 SVG ”,从 2012 年 10 月开始就有这个答案

我也一直在研究这个问题,并提出了一些选择。

  • Chrome Frame - 一个浏览器插件,实际上在下面使用 chrome,这意味着 SVG 可以正常工作。如果您能够将插件部署到浏览器,这很好,但对于真正的商业环境,这可能是不可能的。

  • SVG Web - 目标是将 SVG 带到所有浏览器。它看起来是一个相当大的项目,有谷歌的意见。但是,尽管我对这些问题知之甚少,但这并不适用于 D3。

  • D34Raphael - 你提到了这个,我又发现它不能开箱即用。在 GitHub 上查看该项目,几个月来没有任何提交活动,并且有一些拉取请求“首先尝试获得对事件绑定所需的 .on() 的支持”。如果它不支持事件,那对您来说是个问题吗?我一般会远离这个。

  • R2D3 - 你提到的另一个。我从 D3 网站上获取了 Sankey 示例,并且必须进行一些更改才能使其正常工作。我无法工作的主要事情(拖动事件,组 - 虽然可以使用替代方案)。花了大约一天的时间让示例在 IE8 中运行,我相信它处于可用状态。GitHub 上的项目也更加活跃,开发人员正在提交、投入工作并非常积极地参与讨论等。这得到了我的投票。

还:

D3 IE8 兼容性?

wikipedia.org/wiki/Scalable_Vector_Graphics

SVG 网页兼容性

但是使用客户端插件的解决方案是不可接受的,到目前为止,我似乎无法在 IE8 中显示 svg。所以解决的办法就是找一些其他的方法来渲染矢量图。我想其他人也有同样的问题


编辑:

无论哪种方式,在我之后遇到同样问题的人至少会有一些集中的材料,并且会意识到在 IE8 上显示 svg 没有简单/真正的解决方案,最好花时间开始现有的代码重写/调整非-svg 版本

编辑:

经过一些测试后,我会说它值得尝试通过 R2D3 示例,看看是否可以简化/执行 IE8 中的代码

样品

编辑:

在分别测试不同元素的过程中,似乎出现了一些 r2d3 问题

最常见的是Invalid argumentObject 不支持此属性或方法

因为我不习惯为 IE8 开发,所以我发现了一些有用的提示:

转储 javascript 变量显示对象

0 投票
2 回答
2852 浏览

javascript - 用于 IE 的 ArrayBuffer.prototype.slice 垫片?

Internet Explorer 没有实现ArrayBuffer.prototype.slice. 令人惊讶的是,他们不打算很快实施它。因此,此功能是否有任何垫片?如果不是,那么这将是我或其他人实施后互联网上的规范答案。

0 投票
2 回答
468 浏览

dependencies - 如何及时配置 RequireJS shim 依赖项?

我想加载一些相互依赖的非 AMD 模块(以及通过 require-css 的 CSS)(我的案例是 CodeMirror 及其一些插件,但问题是通用的);但我只在某些情况下需要这个,而在其他情况下不需要。这就是为什么我不想require.config用所有已知的 shim 依赖项组合来污染主调用。

当我想包含集合时,我包含codemirror_set在依赖项列表中,而它codemirror_set.js本身只包含简单的

问题是,这些依赖define项相互依赖,但是当我require.config({shim:{...}});在此之前添加它时define,它不会被尊重,如果我将它包含require.config在我映射路径等的主要部分中,它可以工作,但它被重用并且正如我所写的那样不想用所有的可能性污染它。

define在包含相互依赖的依赖项之前,如何及时包含 shim 依赖项?

PS:即使我在需要的文件中包含 shim deps 配置,codemirror_set它也可以工作,但它们还有更多,因此需要将其复制到每个文件中。我想只定义一次。

0 投票
2 回答
160 浏览

javascript - requirejs和shim的配置

我有这种配置:

那么,我的代码有什么问题?为什么 d 未定义?每个文件都已下载,jquery 版本为 2.1。

请帮忙 :(

0 投票
1 回答
1024 浏览

c# - 如何在不使用依赖注入的情况下使用 Microsoft Fakes 来隔离 Web 服务

我正在测试一个 Web 服务客户端,需要隔离对 Web 服务的调用。

我已经被告知我们不能使用依赖注入。如何隔离 Web 服务,以便测试调用该服务的业务逻辑。由于我无法控制网络服务,我需要确定服务将返回的值。

有人告诉我,使用 Microsoft Fakes 我可以做到这一点,但不知道如何定义假货。

我正在测试的代码的简化版本是:

我想控制存储在 promoFromMaps 中的值,以便能够测试之后发生的业务逻辑。

谢谢你的时间。

0 投票
1 回答
809 浏览

javascript - IndexedDB onupgrade 不需要在 iOS 上触发

我已经阅读了有关此类问题的几个问题,因此我知道onupgradeneeded应该何时调用它的目的以及浏览器兼容性问题。

我正在开发一个 Web 应用程序,它应该支持桌面上的 Chrome 和 iOS 上的 Safari。我在 Chrome 中使用 IndexedDB,但在使用移动 Safari 时使用 IndexedDBShim 实现退到 WebSQL。

该系统在 Chrome 中一切正常。在移动版 Safari 中,第一次加载没有缓存数据的页面时,会因为onupgradeneeded 调用而无法创建数据库。但是:如果我重新加载页面,onupgradeneeded 则会调用第二次加载。从那里,垫片工作正常。

目前我的解决方法是显示一个警告,要求用户刷新页面 - 然后它就可以工作了。

我能做什么更好?

0 投票
1 回答
865 浏览

unit-testing - 垫片和私有方法

经过大量搜索,我只是找不到使用 shim 测试私有方法的方法。

这是我的课:

如何AddWithRefPrivate使用垫片测试该方法?

0 投票
3 回答
428 浏览

html - 标记为 clearfix 的 div 中空 HTML 注释的目的

clearfix div中空注释的目的是什么?我认为这是针对某种较旧的浏览器 shim 的;不知道为什么你会想到处放空评论。似乎只有一两个 CSS 规则会更容易维护。

空的 html 注释

0 投票
1 回答
5179 浏览

c# - .Net Fakes - 当基类是抽象的时如何填充继承的属性?

我正在尝试编写一个涵盖以下行的单元测试

其中 fileInfo 是 FileInfo 的一个实例。

我正在使用假货填充 FileInfo 对象,但我无法为 FullName 属性提供值,因为它是从基类继承的。

对于未继承的 Name 属性,我可以简单地这样做:

Microsoft 提供的答案是在基类上创建 shim,在本例中为 FileSystemInfo。但如果我试试这个:

它不起作用,因为 FileSystemInfo 是一个无法创建的抽象类,因此无法填充。

在这种特殊情况下,我可以绕过它,因为我可以组合 DirectoryName 和 Name 属性以使其可测试,但我不能只使用我想要的属性似乎很疯狂,因为它恰好来自基础。

有没有人遇到这个问题并设法解决它?