我将Jasmine添加到一个大型项目中,以便为该项目的javascript添加测试。通常情况下,我使用Ruby,而且我的元素有点偏离。
我有一个类,它有一个函数,我想为它创建一个间谍,以便在我的一个测试中返回一个特定的值。以下是代码摘要:
class @MyKlass
current_location = ->
window.location.host
verify_domain: () ->
domain_filter = current_location()
domain_list = /example\.com/i
@valid_domain = domain_filter.match(domain_list)?
那我该怎么做呢?
it("verifies domains", function() {
spyOn(MyKlass, 'current_location').and.returnValue("example");
var myKlass = new MyKlass();
expect(myKlass.verify_domain()).toEqual(true);
});
答案 0 :(得分:0)
事实证明,这是一个类的实例上的函数 - 我在代码中以某种方式错过了。这是缩写解决方案:
describe('MyKlass', function() {
myKlass = null
beforeEach(function() {
myKlass = new MyKlass()
});
it('returns true for our domains', function() {
spyOn(myKlass, 'verify_domain').and.returnValue(true);
expect(myKlass.verify_domain()).toBe(true);
});