2016-02-24 3 views
0

Я пытаюсь протестировать метод MeteorJS с жасмином и скоростью. Метод использует объект this. Я не знаю, как назвать этот метод с этим объектом Метод заключается в следующем:Передайте этот объект Метеорный метод в Жасмине

Meteor.methods({ 
    deleteUser: function(userId) { 
    if (this.userId === userId) { 
     return Meteor.users.remove({ 
     _id: this.userId 
     }); 
    } 
    } 
    ... 
}) 

Мой тест приведен ниже:

it("test remove() user IDs match", function() { 
    spyOn(Meteor.users, 'remove').and.callThrough(); 
    Meteor.call('deleteAccount', 1); 
    expect(Meteor.users.remove()).toHaveBeenCalled(); 
}); 

К сожалению, тест не удается, поскольку я не знать, как передать значение this.userId методу (1 в Meteor.call('deleteAccount', 1) - userId). Может ли кто-нибудь сказать мне, как пройти this методам Метеор через тест Жасмин, пожалуйста?

ответ

0

Я считаю, что вы можете установить this контекст вручную в Jasmine:

it("test remove() user IDs match", function() { 
    spyOn(Meteor.users, 'remove').and.callThrough(); 
    var thisContext = {userId: 1}; 
    var result = Meteor.methodMap.deleteAccount.call(thisContext, 1); 
    expect(Meteor.users.remove()).toHaveBeenCalled(); 
}); 

Если methodMap не существует для вас, вы, возможно, нужно следовать некоторым инструкциям для MeteorStubs.