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
Utvidelsen kan bli konfigurert for implisitt eller eksplisitt teststil. Den implisitte stilen henger seg på installasjonen via  kallet, men dette er avhengig av et funksjonelt   kall. Scribunto-utvidelsen begrenser  kall, og i henhold til Extension:Scribunto/Lua reference manual så er dette ikke helt forutsigelig, dermed er bare den eksplisitte formen fungere.

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.