Extension:Pickle

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:Pickle and the translation is 100% complete.
Other languages:
English • ‎Türkçe • ‎español • ‎norsk bokmål • ‎norsk nynorsk • ‎日本語
MediaWiki manüel uzantıları
OOjs UI icon advanced.svg
Pickle
Sürüm durumu: deneysel
px
Uygulama Kullanıcı arayüzü, Veri çıkarma, API
Açıklama Scribunto için temel bir yerinde test çerçevesi sağlar.
Yazar(lar)
Uyumluluk politikası usta
Veritabanı değişiklikleri Hayır
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
README, LDoc
, Pickle uzantısını çevirin
Kullanım ve sürüm matrisini kontrol edin.

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. Gelecekte bir süre, uzantı adım stili testi ile genişletilebilir ve daha sonra ad daha da iyi olurdu.

Turşu uzantısına kullanıcı bakış açısından genel bir bakış Help:Pickle sayfasında bulunabilir.

Kurulum

Phabricator'daki kod GitHub: jeblad/Pickle altındaki kodun gerisinde kalabilir, daha sonra geliştirme sırasında kullanılır ve kararsız olabilir. 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.


  • Dosyaları indirin ve extensions/ klasörünüzdeki Pickle adlı dizine yerleştirin.
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'Pickle' );
    
  • Yes 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ılığın nedeni, işlevlerin önce yapılandırılmasından kaynaklanmaktadır. define() işlevi çağrılır ve böylece çağrılan çalışma zamanı ortamı küresel işlevler olmadan bağlanır. Genel işlevleri doğru çalışma zamanı ortamına eklemek için define() çağrısı getfenv() öğesini kullanın. getfenv() çağrısı olmadan, işlevler oluşturulurken doğru çalışma zamanı ortamı mevcut olmalıdır. Bu nedenle, description() çağrısı genel işlevleri yüklemelidir.

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.