Kiedy testuję jednostki, pobierający są ustawieniami dla maszynopisu, nie mogę znaleźć sposobu na szpiegowanie tych pobierających i ustawiających. Zamiast tego obiekt natychmiast zostanie oceniony. Używam Jasmine do testu jednostkowego.Jak mogę spyOn Pobieranie i ustawianie maszynopisu?
8
A
Odpowiedz
3
To nie jest jeszcze obsługiwane, ale istnieje problem z jaśminem dla supporting getters.
Jeśli naprawdę potrzebują wsparcia teraz, można wydłużyć SpyRegistry.js plik i dodać kod, który apsillers proponowaną:
this.spyOnProperty = function(obj, methodName, accessType) {
...
var desc = Object.getPropertyDescriptor(obj, methodName);
if(desc[accessType]) { // "get" or "set" exists on the property
var spy = j$.createSpy(methodName, desc[accessType]);
desc[accessType] = spy;
Object.defineProperty(obj, methodName, desc);
}
}
2
Nie mogę znaleźć sposobu, aby szpiegować tych pozytonów i seterów. Zamiast tego obiekt natychmiast zostanie oceniony.
To nie jest obsługiwane przez Jasmine. Podstawowymi opcjami są refaktoryzacja w wywołania funkcji LUB przedłużenie jaśminu
6
spyOnProperty
jest teraz dostępny w Jasmine:
const foop = {
get value() {},
set value(v) {}
};
it('can spy on getter',() => {
spyOnProperty(foop, 'value', 'get').and.returnValue(1);
expect(foop.value).toBe(1);
});
it('and on setters',() => {
const spiez = spyOnProperty(foop, 'value', 'set');
foop.value = true;
expect(spiez).toHaveBeenCalled();
});
0
znalazłem rozwiązanie tutaj pomocne. Zamiast szpiegować odbiorcę, wystarczy go przesłonić, aby zmodyfikować powrót do testowania.
Powiązane problemy
- 1. Jasmine - jak spyOn metody instancji
- 2. Jasmine spyOn na funkcji i zwróconym obiekcie
- 3. Operator maszynopisu i rozłożenia?
- 4. Pobieranie/ustawianie właściciela pliku w C#
- 5. Import maszynopisu/jak i import/wymagają?
- 6. Jak używać Angular2 i maszynopisu w Jsfiddle
- 7. Błąd kompilacji maszynopisu i JQuery: Nie mogę znaleźć nazwy "$"
- 8. Jak zainstalować starszą wersję maszynopisu?
- 9. Adnotacje maszynopisu
- 10. Który edytor i debugger dla maszynopisu
- 11. test jednostkowy z użyciem maszynopisu i karmy
- 12. Pobieranie/ustawianie bieżących procentów @keyframes/zmiana klatek kluczowych
- 13. Dlaczego warto używać spyOn zamiast jaśminu.createSpy?
- 14. testowanie jednostki spyOn obserwowalna usługa w angular2
- 15. Importowanie jqueryui za pomocą maszynopisu i RequireJS
- 16. Przeglądarka rozwiązań maszynopisu i plików javascript wyjściowych
- 17. Dlaczego muszę wywoływać spyOn w beforeEach()?
- 18. VideoView i pobieranie progresywne
- 19. Obejścia wielokrotnego dziedziczenia maszynopisu?
- 20. Czy mogę zdefiniować klasę maszynopisu, która ma podpis indeksu?
- 21. Pobieranie i ustawianie ustawień okna podziału dla rozwoju wtyczki IntelliJ IDEA
- 22. Ustawianie punktów przerwania w testach Jasmine maszynopisu za pomocą kodu Visual Studio Kod
- 23. Plik javascript odniesienia wewnątrz maszynopisu
- 24. Jak ustawić jaśmin dla projektu maszynopisu
- 25. Interfejs funkcji maszynopisu
- 26. Błąd maszynopisu TS1005: ";" Oczekuje
- 27. Specyficzne przeciążenie maszynopisu
- 28. czym jest transformata maszynopisu
- 29. Wymiarowanie i ustawianie właściwości granicy
- 30. jak używać pliku json w pliku maszynopisu
Duplikat https://stackoverflow.com/questions/20879990 –