Javascript 在编写TypeScript单元测试时,是否可以隐藏补丁依赖项
我们的Web应用程序有一个非常丰富的Javascript前端,有大量自定义小部件、向导等。我们正在考虑将其中一些(可能最终全部)迁移到TypeScript,主要是为了更容易重构/更少bug 我们已经为小部件/客户端业务逻辑进行了JavaScript单元测试——我们通过Karma进行了测试。目前,我们的断言都使用YUI测试框架,但我们并不特别重视它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
因为我们把代码库移到了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;”)代码>