如果我将sinon与typescript一起使用,那么如何将sinon mock转换为我的对象的实例?
例如,将返回SinonMock,但我的测试控制器可能需要传递给其构造函数的特定服务.
var myServiceMock: MyStuff.MyService = <MyStuff.MyService (sinon.mock(MyStuff.MyService));
controllerUnderTest = new MyStuff.MyController(myServiceMock, $log);
Run Code Online (Sandbox Code Playgroud)
sinon可以和Typescript一起使用吗?
我正在使用最新的Angular和Typescript以及RxJS 5.
Angular目前使RxJS成为必需品.我已经使用C#超过10年了,我非常习惯Linq/Lambdas /流利的语法,我认为它构成了Reactive的基础.
我想在重试时使用越来越大的超时值进行Http get调用,但是我遇到了一个问题,看看如何做到并仍然保持管道中的所有内容(不使用外部状态).
我知道我可以这样做,但它只会使用相同的超时值重试.
myHttpObservable.timeout(1000).retry(2);
Run Code Online (Sandbox Code Playgroud)
RxJS的文档在很多地方都很差,在这里询问它只是删除了我的问题,这很难过......所以我被迫查看源代码.
有没有办法以每次增加超时持续时间的方式重试,以保持状态在管道中?此外,我想在第一次尝试时保留一个初始超时.
我一开始尝试过与此类似的东西,但实现了令人困惑的重试当操作符并非真正用于我想要的东西时:
myHttpObservable.timeout(1000).retryWhen((theSubject: Observable<Error>) => {
return aNewMyObservableCreatedinHere.timeout(2000);
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用外部状态来实现这一点,但我基本上都在寻找一种优雅的解决方案,我认为,这是他们用反应式编程方式所驱动的.
我正在使用AngularJS 2.4.6,Typescript 2.1.2,IIS 8.0,Chrome,Visual Studio 2015
我正在使用Angular Heroes教程并注意到当我刷新浏览器时我得到了404响应(由于PathLocationStrategy -aka HTML5路径 - 默认使用)...所以这是有道理的,因为IIS看不到/仪表板返回.
有很多解决方案使用URL重写,我做了,确实正确地路由到index.html.
我的问题是,当我刷新浏览器时,我希望它处于相同的状态.这与使用哈希策略的角度1.5一样好用.
我是否需要做一些特定的事情来创建这种行为?原样(Angular 2.0),刷新结束导致基本状态显示而不是我所在的状态.
我注意到Rewrite操作将301发送回浏览器,因此index.html再次不知道预期的状态.
重要的是,外部链接(例如,从电子邮件中)到Angular 2 app特定状态的工作方式如何?
例如,如果我发送一封包含我的应用程序链接的电子邮件,例如:
https:// myserver/some/path/to/aState
这个简单的场景似乎不适用于我尝试过的所有内容.
该项目不涉及MVC.客户端代码向webapi middletier web发出ajax请求,但出于我要求的目的,你可以假设根本没有http调用.
我正在使用VS 2015更新3,Angular 2.1.2,Typescript 2.0.6
有人可以澄清一下与npm @types相比什么样的打字与本月有什么难以找到的文件?
或者只是指出有关使用这些东西的内容和方法的文档.优选地,文档应该是最新的.
另外,在相关意义上,如何卸载.我看到的每个地方都有安装软件包的有用扩展,但至少我无法解释.我安装了Package Installer扩展,但似乎相当有限.
在Visual Studio中使用这些东西的痛苦是想要走开并再次做MVC.也许这只是我,但似乎不应该这么困难.
我正在使用安装了更新4和Typescript 1.3的Visual Studio 2013.
如果我有一个打字稿文件,如下所示:
MyEnums.ts:
export = MyEnumModule;
module MyEnumModule {
export enum AnEnum { RED, BLUE, GREEN }
}
Run Code Online (Sandbox Code Playgroud)
我有一个像这样的定义文件:
MyDefinitions.d.ts:
declare module MyDefinitions {
interface ISomeInterface {
aProperty: string;
aMethod: () => void;
aColor: MyEnumModule.AnEnum;
}
}
Run Code Online (Sandbox Code Playgroud)
我基本上得到一个错误"找不到名字'MyEnumModule'"
从typescript文件引用时,此枚举文件可正常工作.例如:
SomeCode.ts:
export = MyCode;
import MyEnums = require('MyEnums');
module MyCode{
export class MyClass implements ISomeInterface {
public aColor: MyEnums.AnEnum = MyEnums.AnEnum.RED;
...and so on
Run Code Online (Sandbox Code Playgroud)
我的理解是添加/// <reference...或导入将不适用于.d.ts文件(我试图确保它看起来无论如何都不起作用).
有谁知道如何在这样的定义文件中引用枚举?
提前致谢.
--update:
这是我在尝试下面的Steve Fenton建议后看到的错误(我刚刚制作了一个示例项目).
MyDefinitions.ts:
import MyEnumModule = …Run Code Online (Sandbox Code Playgroud) angular ×3
typescript ×3
amd ×1
enums ×1
html5 ×1
iis ×1
node-modules ×1
npm ×1
requirejs ×1
rxjs ×1
rxjs5 ×1
sinon ×1
unit-testing ×1