У меня проблемы с выполнением некоторых утверждений вызова метода при тестировании объекта Javascript с помощью QUnit + JsMockito.Базовая инфраструктура работает нормально: Qunit, JsHamcrest (зависимость Jsmockito) и Jsmockito правильно инициализируются в определении набора.
Я хочу объявить вызов метода «dataStore # create» с объектом в качестве аргумента,следующим образом:
var store = {create: function(arg) {}};
test("save()", function() {
var dataStoreMock = mock(store);
var objectUnderTest = { value: 'aaa',
dataStore: dataStoreMock,
save: function() {this.dataStore.create({name: this.value});}}
objectUnderTest.save();
verify(dataStoreMock).create({name: 'aaa'});
});
Я получаю ошибку утверждения: «Требуется, но не вызывается: obj.create (равно [объектный объект])» *
Мой первый подозрение заключается в том, что равенство объектов нене работает, как я ожидал, доказательство того, что утверждение работает при использовании на вызовах, которые передают примитивные типы данных вместо объектов:
this.dataStore.create(this.value); //actual code
verify(dataStoreMock).create('aaa'); //test
Я пытался использовать jsHamcrest 'equalTo'matcher (как показано в jsMockito docs) также безуспешно:
verify(dataStoreMock).create(equalTo({name: 'aaa'}));
У кого-нибудь есть идеи о том, как заставить работать такого рода утверждение?