Extension:Pickle
Bu uzantı, MediaWiki 1.42 veya daha sonraki herhangi bir sürümüyle uyumlu değil! Yayındaki bir sitede bu uzantıyı kullanmanıza karşı tavsiye edilir. Gönüllü geliştiriciler, {{Incompatible }} şablonu {{Incompatible |version=1.42|pledge=~~~~}} ile değiştirerek bu uzantıyı MediaWiki 1.43 ile uyumlu hale getirmek için güncelleme çabalarını taahhüt etmeye davet edilmektedir. |
Pickle Sürüm durumu: deneysel |
|
---|---|
Uygulama | Kullanıcı arayüzü, Veri çıkarma, API |
Açıklama | Scribunto için temel bir yerinde test çerçevesi sağlar. |
Yazar(lar) | |
En son sürüm | 0.1.0 |
Uyumluluk politikası | Master, geriye dönük uyumluluğu korur. |
MediaWiki | 1.33 - 1.35 |
Veritabanı değişiklikleri | Hayır |
Lisans | GNU Genel Kamu Lisansı 2.0 veya üstü |
İndir | GitHub: Not: README, LDoc |
Yardım | Help:Pickle |
|
|
Pickle uzantısını çevirin | |
Pickle (veya Davranış odaklı geliştirme ', BDD, daha önce Spec) uzantısı, Scribunto ile "spec" stil testi için bir uzantısıdır. Spesifik tip testi, Rspec, Busted ve diğer benzer test çerçevelerinde yapılan aynı birim test tipidir. PHP ve birkaç Lua modülüne ve bunların yerelleştirmelerine çok ince bir entegrasyon sağlayacaktır. Gerçek kod hala geçerli Lua ve çeşitli editörlerde intellisense eksik tanımları hariç tüm düzenleme araçları çalışacaktır.
Kodunuzu seçtiğiniz için uzantıya Pickle denir. Aynı zamanda kelimelerle oynanan bir oyundur; gherkins, pickles için kullanılır. Gherkin aynı zamanda bir tür kabul testi "adım" stil testi için bir dildir, bu nedenle bu tür kod parçacıklarının turşu olduğunu söyleyebilirsiniz.
Turşu uzantısına kullanıcı bakış açısından genel bir bakış Help:Pickle sayfasında bulunabilir.
Kurulum
Spec Scribunto uzantısına bağlıdır. Vagrant tabanlı geliştirme ortamını yeniden oluşturmak için Pickle: Topics/Vagrant sayfasına bakın.
- Dosya(ları)yı indirin ve
extensions/
klasörünüzdekiPickle
adlı dizine yerleştirin. - LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
wfLoadExtension( 'Pickle' );
- Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Kullanım
Uzantı, örtük stil veya açık test stili için yapılandırılabilir.
Örtük stil, define()
çağrısındaki yüklemeyi piggyback yapar, ancak bu işlevsel bir getfenv()
çağrısına bağlıdır.
Scribunto uzantısı, getfenv()
çağrısını ve Extension:Scribunto/Lua reference manual#Differences from standard Lua bu tam olarak öngörülebilir değildir, bu nedenle yalnızca açık stil çalışır.
getfenv()
ile bağımlı olmanın nedeni, işlevlerin define()
işlevi çağrılmadan önce yapılandırılması ve dolayısıyla çağıran çalışma zamanı ortamının olmasıdır.
Küresel işlevleri doğru çalışma zamanı ortamına eklemek için define()
çağrısını getfenv()
kullanın.
getfenv()
çağrısı olmadan, işlevleri oluşturulurken doğru çalışma zamanı ortamı mevcut olmalıdır.
Bu nedenle, describe()
çağrısı genel işlevleri kurmalıdır.
Stiller arasında geçiş, {"Setup": "implicit"}
veya {"Setup": "explicit"}
yapılandırması ile yapılır.
Her yerde bulunan ve oldukça sinir bozucu bir örnek olan "Module:HelloWorld" gibi bir modülünüz varsa,
local p = {}
function p.helloWorld()
return "Hi there!"
end
return p
Öyleyse bir /pickle
alt sayfasında bunu aşağıdaki gibi test edersiniz
- Örtük form
return describe 'Hello world' (function()
subject .helloWorld()
it 'says hello' (function()
expect :toBe("Hi there!");
end)
end)
- Açık form
mw.pickle:install()
describe 'Hello world' (function()
subject .helloWorld()
it 'says hello' (function()
expect :toBe("Hi there!");
end)
end)
return mw.pickle:reports()
Örtük formun başında ve sonunda satırlar kaldırılır ve return deyimi kodun yeni sonuna taşınır.
tap()
çağrısının kullanılabilir olduğu ve kaç tane describe()
çağrı yapılabileceği gibi ek değişiklikler olabilir.