Extension:Pickle/nb

Pickle (eller Oppførselsdrevet utvikling, tidligere Spec) utvidelsen er en utviding for «spec» type testing i. Spec-type testing er samme type enhetstesting som blir gjort i Rspec, Busted og andre lignende testrammeverk. Den vil tilby et veldig tynt integrasjonslag mot PHP og noen få Lua-moduler og tilhørende lokaliseringer.

Den faktiske koden er fortsatt gyldig Lua, og alle redigeringsverktøy vil fungere, med unntak av manglende definisjoner for intellisense i de forskjellige editorene. En oversikt over pickle-utvidelsen fra et brukerperspektiv finnes på.

Utvidelsen kalles Pickle fordi du plukker på din kode.

Likevel husk at sylteagurk er brukt for pickles

En eller annen gang i fremtiden så kan utvidelsen bli utvidet med step-stil testing, og da vil navnet passe enda bedre.

Installering
Koden på Phabricator kan henge etter koden på GitHub: jeblad/Pickle, den siste er brukt under utviklingen og kan være ustabil. Spec avhenger av -utvidelsen. For å gjenskape det Vagrant-baserte utviklingsmiljøet, se.

Bruk
The extension can be configured for implicit style or explicit style of tests. The implicit style piggybacks the installation on the  call, but this depends on a functional   call. The Scribunto extension limits the  call, and according to Extension:Scribunto/Lua reference manual it is not quite predictable, thus only the explicit style will work.

The reason for the dependency on  is that the functions are constructed before the describe is called, and thus the calling environment are bound without the global functions. To insert the globals in the correct environment the  call use. Without this call the environment must be created before the function, thus an explicit call for installing the globals must be available.

Bytting mellom stiler blir gjort med konfigurasjonen  eller.

Hvis du har en modul slik som «Module:HelloWorld», det allestedsnærværende og ganske irriterende eksemplet, så vil det være kodet som noe ala

Deretter, på en testside, vil du teste dette som det etterfølgende


 * Implisitt form


 * Eksplisitt form

På den implisitte formen er linjene i starten og på slutten blitt fjernet, og returutsagnet er flyttet ned til slutten av koden.

Det kan være ekstra endringer, slik som hvor kallet  er tilgjengelig, og hvor mange   som kan bli gjort.