2017-01-03 49 views
0

嗨,我想开始一个简单的茉莉花测试(使用打字稿),这似乎无法正常工作。如果一个变量不为空,那么在内部函数的else部分中是否调用了一个函数,即时测试的目的是什么。茉莉花JavaScript基本功能测试失败

我的功能:

let getAndSet =() => { 
    if (main.getApiAcessToken() === "") { 
     main.addIframe(); 
     main.getGraphToken(); 
    } else { 
     getCountry(); 
    } 
}; 

这是测试:

it("should call Function get country if token that was passed not empty",() => { 
    let main2 = main; 
    main2.getApiAcessToken = jasmine.createSpy("getApiAcessToken spy").and.returnValue("not empty"); 
    let getCountry2 = jasmine.createSpy("getCountry spy"); 
    getAndSet(); 
    expect(getCountry2).toHaveBeenCalled(); 
}); 

我似乎不明白可能是什么问题,我试图改变一个正常的js函数或本。主要功能里面没有人似乎工作似乎我失去了茉莉花非常基本的东西。

+0

我能看到你设置的测试。但是你在哪里调用测试中的getAndSet方法? (不是说你的设置是正确的,顺便说一句) –

+0

谢谢我只是注意到,并修复它,仍然是同样的问题。也更新代码以反映这一点。 –

回答

0

你的间谍的名字是错误的。您的间谍被称为getCountry2而在代码的方法被称为getCountry

getCountry = jasmine.createSpy("getCountry spy"); 
getAndSet(); 
expect(getCountry).toHaveBeenCalled(); 

这里是一个工作示例:http://jsfiddle.net/bBL9P/506/

+0

ty修复了这个问题。 –