Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在编写TypeScript单元测试时,是否可以隐藏补丁依赖项_Javascript_Unit Testing_Mocking_Typescript_Monkeypatching - Fatal编程技术网

Javascript 在编写TypeScript单元测试时,是否可以隐藏补丁依赖项

Javascript 在编写TypeScript单元测试时,是否可以隐藏补丁依赖项,javascript,unit-testing,mocking,typescript,monkeypatching,Javascript,Unit Testing,Mocking,Typescript,Monkeypatching,我们的Web应用程序有一个非常丰富的Javascript前端,有大量自定义小部件、向导等。我们正在考虑将其中一些(可能最终全部)迁移到TypeScript,主要是为了更容易重构/更少bug 我们已经为小部件/客户端业务逻辑进行了JavaScript单元测试——我们通过Karma进行了测试。目前,我们的断言都使用YUI测试框架,但我们并不特别重视它 因为我们把代码库移到了Type Script,所以似乎也很合理地考虑在ToeScript中编写一些固件(同样的好处)。还要注意,我们的TypeScri

我们的Web应用程序有一个非常丰富的Javascript前端,有大量自定义小部件、向导等。我们正在考虑将其中一些(可能最终全部)迁移到TypeScript,主要是为了更容易重构/更少bug

我们已经为小部件/客户端业务逻辑进行了JavaScript单元测试——我们通过Karma进行了测试。目前,我们的断言都使用YUI测试框架,但我们并不特别重视它

因为我们把代码库移到了Type Script,所以似乎也很合理地考虑在ToeScript中编写一些固件(同样的好处)。还要注意,我们的TypeScript代码的JavaScript输出没有我们手工制作的JavaScript代码那么友好,所以这是另一个原因(要针对TypeScript编写测试)

目前,我们的一些单元测试将“猴子补丁”一个依赖项来查询测试中的代码。例如,我们可以用一个模拟对象替换浏览器的XmlHttpRequest对象,这样我们就可以分析代码如何与真正的XmlHttpRequest对象交互

目前,我们只是在测试期间替换依赖项,例如
window.XmlHttpRequest=MyMockObject

有没有人对这种做法有什么想法,特别是在TypeScript中实现它与JavaScript有什么不同

请注意,我不喜欢仅仅为了使单元测试更容易而修改代码(例如,要求依赖项总是被注入而不是假定存在)。

sinon库(具有TypeScript绑定)已经这样做了,并特别支持伪造XMLHttpRequest(和计时器)。在可能的情况下使用它似乎是最好的选择

在TypeScript中有很多方法可以绕过类型检查

  • 分配任何类型的值(始终允许)
  • 编写一个JavaScript函数来为您完成繁重的工作(然后为该函数编写一个TypeScript定义)。这就是使用TypeScript中的sinon FakeXMLHttpRequest功能时的基本情况
  • eval(“foo=valueOfBlongType;”)