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.

Utvidelsen kalles Pickle fordi du plukker på din kode. Det er også et spill med ord; sylteagurk (gherkin) er brukt for pickles Gherkin er også et språk for «step»-stil testing, en type akseptansetesting, så du kan si at disse typene av kodesnutter er pickles. En eller annen gang i fremtiden så kan utvidelsen bli utvidet med step-stil testing, og da vil navnet passe enda bedre.

En oversikt over pickle-utvidelsen fra et brukerperspektiv finnes på.

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 Pickle: Topics/Vagrant.

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 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.

Grunnen til avhengigheten av  er at funksjonene er konstruert før   er kalt, og dermed er det kallende kjøremiljøet allerede bundet uten de globale funksjonene. For å injisere de globale funksjonene i det riktige kjøremiljøet bruker  kallet. Uten  kallet må det korrekte kjøremiljøet være tilgjengelig når funksjonene skapes. Dermed må et kall  installere de globale funksjonene. To insert the global functions in the correct run-time environment the  call use. Without the  call the correct run-time environment must be present while creating the functions. Thus a call  must install the global functions.

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.