spyOn (Dienst, someMethod) .and.callThrough();Jasmin SpionOn berücksichtigt nicht angular crubbins
dann ...
var an_object = some_objects[0];
useADirectiveThatRepeatsOver(some_objects);
expect(service.someMethod).toHaveBeenCalledWith(an_object);
nicht mit
Expected spy someMethod to have been called with [ Object({
sent_date: '2016-11-18T12:06:29.712318Z',
email: '[email protected]', url: '/api/v1/invites/1/' }) ]
but actual calls were [ Object({
sent_date: '2016-11-18T12:06:29.712318Z',
email: '[email protected]', url: '/api/v1/invites/1/',
$$hashKey: 'object:110' }) ].
der Richtlinie:
<div ng-repeat="obj in some_objects">
<span ng-click="someControllerMethod(obj)">{{ obj.email }}</span>
</div>
Die Frage, AFAICT, tritt auf, wenn someControllerMethod (obj) aufgerufen wird - außerhalb diese Methode (zB kurz bevor das obj nicht $$ Hashkey hat, aber sobald someControllerMethod() aufgerufen wird, hat obj gewann den fehlerhaften Schlüssel.
Ich gehe davon aus, es gibt keine Möglichkeit zu verhindern, eckigen zu tun, was es tut, also, was sind einige Möglichkeiten, dies zu mildern? Natürlich kann ich angle.equals() anstelle von toEqual() verwenden, da die Methode toHaveBeenCalledWith() keine Möglichkeit bietet, den Vergleicher zu ändern.