Üzerinde çalıştığım bir Django-CMS uygulaması için bazı test kapsamına girmeye çalışıyorum ve test eklentileri/uzantıları nasıl birimden emin olacağından emin değilim. Bunu daha önce kimse yaptı mı, eğer öyleyse, nasıl? Bazı örnekler harika olurdu.Django-CMS uzantıları nasıl test edilir?
cevap
Sorunuzu doğru bir şekilde anlarsam, django-cms yüklemenizi sürdüren klasörde bulunan cms/tests/plugins.py modülündeki eklentiler için birim testleri için örnekler bulabilirsiniz.
Temel olarak CMSTestCase alt sınıfını ve CMS'nize istekte bulunmak ve sonuçta oluşan yanıtları kontrol etmek için django.test.client'ten İstemci sınıfını kullanırsınız. cms/tests/plugins.py
ile gösterildiği gibi istemci nasıl kullanılacağına dair
Bilgi birim testlerinden daha entegrasyon testlerinde oldukça olduğunu http://docs.djangoproject.com/en/dev/topics/testing/#module-django.test.client
Testleri bulunabilir ve bu da büyük ağır olduğunu ve bütün sistemin bir bazen çok büyük bir kısmını gerektirir yukarı ve koşma (hata ayıklama sırasında sadece gerekli değil, yanlış).
class Expando(object): # Never use in production!
def __init__(self, **kw):
self.__dict__.update(kw)
: Bir 'EXPANDO' tarzı sahte sınıf ihtiyacım
:
DjangoCMS sıkıca yerine tam çözüm 'metale daha yakın' almak için burada var birkaç teknik ne nedenle entegre edilmiştir eklentileri kontrol .render
yöntemi
from cms.plugin_pool import plugin_pool
# ..in production code: class YourPlugin(CMSPlugin)...
# This ensures that the system is aware of your plugin:
YrPluginCls = plugin_pool.plugins.get('YourPlugin', None)
# ..instantiate:
plugin = YrPluginCls()
Sanity:
eklenti sınıfının bir örneğini için
ctx = plugin.render({}, Expando(attr1='a1', attr2=123), None)
, fiili şablonla Render çıkışını kontrol edin: küçük DOM parçaların içeriği doğrulanırken
res = render_to_response(look.render_template, ctx)
# assert that attr1 exist in res if it should
# ..same for attr2
BeautifulSoup kullanışlıdır.
Kullanım yönetici form alanları dolaylı olarak bu modelin özelliklerini kontrol etmek için doğru davranırlar:
from django.test.client import RequestFactory
from django.contrib.auth.models import AnonymousUser
# ...
request = RequestFactory().get('/')
request.user = AnonymousUser()
a_field = plugin.get_form(request).base_fields['a_field']
a_field.validate('<some valid value>')
# Check that a_field.validate('<some invalid value>') raises
- 1. Eşzamansız kod nasıl test edilir
- 2. Dize = Enum.Value nasıl test edilir?
- 3. Golang'da io.writer nasıl test edilir?
- 4. ElasticSearch Eclipse'de nasıl test edilir?
- 5. Arabirim Yöntemi nasıl test edilir
- 6. Uygulamamda yerelleştirme nasıl test edilir
- 7. Python'un kendisi nasıl test edilir?
- 8. Test sınıfları ve test bağımlılıklarını sbt asssembly'a nasıl dahil edilir
- 9. wsdl yerel olarak nasıl test edilir
- 10. Projemde tüm testler nasıl test edilir?
- 11. Espresso Aktivite bittiğinde nasıl test edilir?
- 12. iOS simülatöründe iPad Pro nasıl test edilir
- 13. PHP - SimpleTest - nasıl test edilir sınıflar
- 14. Bir sendAsynchronousRequest nasıl test edilir: XCTest üzerinde
- 15. Birim nasıl test edilir Asp.net MVC fileUpload
- 16. iPhone uygulama güncellemesi nasıl test edilir?
- 17. Grails hizmeti Spock kullanarak nasıl test edilir?
- 18. Döndürülen json sonucu nasıl test edilir?
- 19. Android'de yürütme zamanlaması işlevi nasıl test edilir?
- 20. Nock ile istekte hata nasıl test edilir?
- 21. Düğümdeki olay yayıcıları nasıl test edilir
- 22. jQuery klavye olayları nasıl test edilir?
- 23. Uygulamam IE'nin eski sürümünde nasıl test edilir?
- 24. Redux: Bağlı bir bileşen nasıl test edilir?
- 25. Laravel'de POST rotaları nasıl test edilir
- 26. Golang'daki ana paket işlevleri nasıl test edilir?
- 27. Halatta hataların atılması nasıl test edilir?
- 28. Uzak bir sisteme erişilebiliyorsa nasıl test edilir
- 29. Dekore edilmiş işlevler nasıl birim-test edilir?
- 30. jung için PageRank algoritması nasıl test edilir?
+1, ben de bu ilgileniyorum. –