Yürütmekte olan bir Seaside uygulamasında Test Driven Development'ı kullanıyorum ve tüm verilerim görüntüdeki nesneler olarak saklanıyor (bir veritabanının aksine).Smalltalk Seaside ile test verileri veya test verileri için eşdeğeri?
ToDoTest>>setUp
savedTasks := Task tasklist.
Task deleteAllTasks.
savedProjects := ToDoProject projectlist.
ToDoProject deleteAllProjects.
savedPeople := Person peoplelist.
Person deleteAllPeople.
Ve:
ToDoTest>>tearDown
Task tasklist: savedTasks.
ToDoProject projectlist: savedProjects.
Person peoplelist: savedPeople
benim testleri çalıştırdığınızda böyle test verileri ile çöpe atılan önce
Yani gerçek verileri uzakta saklamak için dikkatli olmak zorunda kalmıştım Sorun, testlerim başarısız olduğunda ortaya çıkıyor, ki bu da tabii ki, bu hata ayıklayıcısını ortaya çıkarır ve sonra gideririm, ama gözyaşı, her zaman aranmaz ve böylece gerçek verilerimi kaybedebilirim.
Verileri dosyalara kaydediyorum, bu yüzden büyük bir sorun değil, ancak olmasını istediğim kadar yumuşak ve otomatik değil.
Neyse bunu geliştirebilir miyim?
İlginç. Verileri bir şekilde bölme fikri burada yardımcı olabilir. Örneğin, basit yapılacaklar uygulamasının şu anda hiçbir kullanıcı kavramı yok, bunları ekleyebilir ve ardından birim testleri için bir test kullanıcısı oluşturabilirim. –
Bunu yapmanın birçok yolu var. Verilerinizi yerelleştirmek istiyorsanız kolay bir yol şeyleri sınıftan örnek tarafına taşıyor. ToDoProject ana sınıfınızsa sınıf tarafındaki yöntemleri örnek tarafına taşıyın. ToDoProject >> # taskList, ToDoProject >> # projectList'e sahip olursunuz ... İlk adımda ToDoProject'u tek bir tonaj yapabilirsiniz, böylece ToDoProject sınıfı >> # varsayılanı ToDoProject örneğini gerçek verilerinizle döndürür.Sahil parçanızın bir instVar "projesi" olacaktır. Ardından, bileşeninizi gerçek kullanım için "ToDoProject varsayılanı" ile yapılandırırsınız ve "ToDoProject new" öğesini ayarladığınız test için –