2017-04-06 64 views
6

Birim VBA uygulamalarını test etmek için Rubberduck kullanıyorum. Bir TestMethod'da aynı türden çoklu Asserts (örn. Assert.IsTrue) kullanıldığında, test sonucu, görebildiğim kadarıyla, hangisinin başarısız olduğunu söylemiyor.Rubberduck birim testlerini kullanarak, birden fazla assistin hangisinin başarısız olduğunu nasıl öğrenebilirim?

Hangi Assert'in başarısız olduğunu veya bunun Rubberduck gelecekteki yol haritasındaki yerini öğrenmenin bir yolu var mı? Elbette kendi bilgilerimi ekleyebilirim, ör. Her Assert'ten önce Debug.Print'u kullanarak, ancak bu çok fazla kod gerektirecektir.

Bir testte birden çok Öğre hakkında farklı görüşler olduğunu biliyorum, ancak bunları benim durumumda bulundurmayı seçtim ve bu tartışma zaten elsewhere.

cevap

5

Yasal Uyarı: Oldukça Rubberduck'un gelişimine katılıyorum.

: Object Browser showing members of 'AssertClass'

Bunun için her bir onaylama işlemi için farklı ve tanımlayıcı mesaj içerir:

hem Rubberduck.AssertClass ve Rubberduck.PermissiveAssertClass uygulanması IAssert arayüzü, her bir eleman için, isteğe bağlı bir message parametresi içermektedir

Assert.AreEqual expected, actual, "oops, didn't expect this" 
Assert.IsTrue result, "truth is an illusion" 

Test Explo rer toolwindow onaylama işlemi başarısız yalnızca, İleti sütununda özel mesaj görüntülenir:

RD Test Explorer

+1

Çok yararlı - Ben [Rubberduck Birim Test Genel Wiki] (https için eklemek üzere önermek:) //github.com/rubberduck-vba/Rubberduck/wiki/Unit-Testing. –

+4

@ JörgBrenninkmeyer OMG bu çekimler 1.4 den! Viki kesinlikle yenilenmeye biraz ihtiyaç duyuyor ... özellikle de bir sonraki sürümün test çerçevesine gelen değişikliklerle (* alay * mı demiştim?) ... –

+0

@ Mat'sMug Artık bir rubberduck etiketi var mı? Kullanıcıları mevcut sürüm numarasını Rubberduck sorularına dahil etmeleri için teşvik etmeli? Bu soru ve cevabınız sürüm agnostiktir, ancak şimdi sürüm olmayan agnostik yorumlar yaptınız ve diğer sorular versiyon agnostik olmayabilir. – puzzlepiece87