spyOn在jasmine和typescript单元测试中的encodeURI函数

时间:2016-05-04 07:25:59

标签: typescript jasmine

我想测试是否已使用'my#String'

调用encodeURI函数
let encoded: string = encodeURI( 'my#String' );

在测试中,我需要做的只是间谍encodeURI函数并检查它是否已被字符串调用,任何想法?

    it('should call encodeURI', function(){
        //1.Spy encodeURI here 
        //2.Execute the function here
        expect( encodeURI ).toHaveBeenCalledWith('my#String');

    });  

2 个答案:

答案 0 :(得分:1)

你需要将你的测试对象传递给间谍,然后才能监视它。

e.g。

var sut = new TestOb();
...
var spy = spyOn(sut, 'encodeURI');

it('should call encodeURI', function() {
    sut.someTestMethod();
    expect(spy).toHaveBeenCalledWith('my#String');
});  

答案 1 :(得分:0)

你可以使用

it('should call encodeURI', () => {
 
    spyOn(window, 'encodeURI').and.callThrough();
    expect(window.encodeURI).toHaveBeenCalledTimes(1);

});