2010-02-21 14 views
9

Czy powinniśmy przetestować zminiaturowane wersje plików javascript w miarę ich rozwijania, czy też jest to bardzo niskie ryzyko, że zminimalizowany javascript nie różni się funkcją od nie-minifikowanej wersji?Testowanie zminimalizowanego javascript

Odpowiedz

7

Uruchamianie pakietów testowych przeciwko nim powinno wystarczyć.

...

Robisz mają zestawy testów ... prawda?

+0

Złapałeś mnie! Czy masz jakieś wskazówki dotyczące zasobów do pisania pakietów testowych js, szczególnie kodu, który korzysta z jquery do manipulowania domem, obsługi zdarzeń itp.? – Readonly

+0

Niestety JavaScript jest jednym z języków, w których nie musiałem jeszcze pisać zestawu testów. JSUnit wygląda obiecująco. http://www.jsunit.net/ –

+0

Użyłem JSSpec w przeszłości, i wygląda na to, że JSUnit został przestarzały na rzecz https://github.com/pivotal/jasmine – erjiang

1

Nie widziałem żadnego z moich skryptów zachowujących się inaczej po ich zminimalizowaniu, ale próbuję je przetestować przed opublikowaniem ich, aby upewnić się, że wszystko zostało zrobione poprawnie.

I powinieneś przetestować go przed użyciem/upublicznieniem, aby upewnić się, że działa tak, jak chciałeś.

Jeśli wszystko zrobiłeś poprawnie w wersji nieliminowanej, nie powinno to stanowić problemu.

4

Przeprowadź je przez jslint przed ich zminimalizowaniem, a jeśli przejdą, powinny minyfikować bez problemu. Kluczem tutaj jest nie zapomnieć o; ponieważ minifying usunie wszystkie linie. Deklarowanie zmiennych pomaga także w procesie minifikacji, ale w przeciwnym razie nic nie zepsuje przez zminimalizowanie.

+0

Staraj się także unikać "a + ++ b' typ rzeczy, jak zasugerowano tutaj (w części ostrzeżenia): http://www.crockford.com/javascript/jsmin.html –

0

To zależy od tego, z czym zamieniłeś. Closure Compiler i YUI Compressor w pełni tokenizują i parsują skrypty i zwykle obsługują prawie wszystko, co większość przeglądarek zaakceptuje. JSMin (szczególnie modified versions) są w większości niezawodne, ale trzymaj się z dala od wszystkiego opartego na regex.

Uzgodniono z radą svinto.

Powiązane problemy