Ich erstelle einen Jasmine-Test, um zu sehen, ob die Funktion aufgerufen wird, wenn auf das Objekt $('#notification')
geklickt wird. HierKlicken Sie auf das Ereignis, das eine Funktion aufruft
ist der Code aus der .cshtml
Datei:
$('#notification').click(function() {
showNotification();
});
Hier ist mein aktueller Jasmin-Test:
describe("Notification", function() {
beforeEach(function() {
loadFixtures('dashboard.cshtml');
});
it("should call function when notification is clicked", function() {
spyOn(window, 'showNotification');
$('#notification').click();
expect(window.showNotification).toHaveBeenCalled();
});
});
Aber ich bin immer dieses Ergebnis:
Test 'Notification:should call function when notification is clicked' failed
Expected spy showNotification to have been called.
Habe ich es falsch gemacht? Fehle ich etwas? Ich bin neu in Jasmine.
EDIT: So sieht die showNotification aus.
function showNotification() {
loadNotification('', '');
resetFields();
}
EDIT: fand eine Lösung für mein Problem. Ich habe den folgenden Code verwendet, um den Klick zu simulieren.
$('#notification').on('click', function() {
showNotification();
});
$('#notification').click();
ich bin jetzt in der Lage zu testen, ob showNotification aufgerufen wird und auch die loadNotification und resetFields, die in showNotification sind.
dank denen, die geantwortet haben. Gibt es jemanden, der das schließt?
Stellen Sie sicher, dass 'window.showNotification' existiert und diese Funktion ist nicht in einer anderen Funktion verschachtelt. –
Sicherstellen, dass es nicht verschachtelt ist, ist das große Problem hier - kannst du die Fixtures-Datei anzeigen? demach.cshtml –
@DarrenSweeney Ich bin nicht sicher im erlaubte zeigen den Code in Dashboard.cshtml aber die showNotification sieht etwas wie diese Funktion showNotification() { loadNotifiction ('', ''); resetFields(); } –