Programcılar, "bir arabirim bir nesne değil karşı Kod.&söylediklerinde ne demek quot;?
Çok uzun ve zorlu arayış öğrenmeye başladımuygulayınBenim iş akışı için TDD. TDD çok iyi IoC ilkelerine uyan etki altındayım.
Burada TDD etiketli soruların bazıları ÇOK göz attıktan sonra, iyi bir fikir arayüzleri, nesneleri değil karşı program için olduğunu okudum.
Bu gerçek kullanım durumlarda bunu uygulamak için ne kadar basit kod örnekleri verebilir misiniz? Basit örnekler bana (ve diğer insanların öğrenmek isteyen) kavramları kavramak için bir anahtardır.
Çok teşekkür ederim.
CEVAP
Düşünün:
class MyClass
{
//Implementation
public void Foo() {}
}
class SomethingYouWantToTest
{
public bool MyMethod(MyClass c)
{
//Code you want to test
c.Foo();
}
}
MyMethod
yalnızca sahte bir nesne ile MyClass
değiştirmek istiyorsanız MyClass
, birim test için bir kabul çünkü, yapamazsın. Daha iyi bir arayüz kullanımı
interface IMyClass
{
void Foo();
}
class MyClass : IMyClass
{
//Implementation
public void Foo() {}
}
class SomethingYouWantToTest
{
public bool MyMethod(IMyClass c)
{
//Code you want to test
c.Foo();
}
}
Şimdi kullandığından MyMethod
test edebilirsiniz sadece bir arayüz, belirli somut bir uygulama değil. Alabilirsin arayüzü ve miras onu oluşturmak için her türlü sahte veya sahte istediğin, ya da kullanabilirsiniz, herhangi bir prefabrik alay kütüphaneler, gibi Rhino.Mocks.MockRepository.StrictMock<T>()
, alabilir arayüzü ve inşa bir mock nesne üzerinde uçmak.
Neden &; son" Java 8 arabirim yön...
Ne &; şube" quot;, "tag"...
Kabuk, " nedir; 2>&1 " dem...
Çözmek için nasıl "Eklenti yürütm...
Ne demek &; Ara" programı " mı?...