2011-06-28 12 views
21

XUnit'teki [TestFixtureSetUp] NUnit eş değeri nedir? IUseFixture'nin [TestFixtureSetUp] değerine eşdeğer olduğunu ancak beklendiği gibi çalışmadığını keşfettik ve keşfettik. Keşfettiğimiz gibi (nUnit durumunda), [TestFixtureSetUp] kodunun, tüm fikstür çalıştırılmadan önce yalnızca bir kez yürütülecek yöntemleri işaretlediğini gördük. XUnit'te [TestFixtureSetUp] eşdeğeri, keşfettiğimiz gibi IUseFixture'dir. Ancak test sırasında, IUseFixture 'SetFixture' yönteminin her Testten önce çağrıldığını gördük (Tüm yöntem için sadece bir kez değil).xUnit framework: XUnit'te NUnit [TestFixtureSetUp] eşdeğeri?

Lütfen yukarıdakileri xUnit'te nasıl elde edebileceğimizi bize yazın. Bir şeyi yanlış anladığımızda da bizi düzeltin. Teşekkürler

cevap

27

XUnit'te [TestFixtureSetUp] doğrudan eşdeğeri yoktur, ancak benzer işlevler sağlayabilirsiniz. This page, NUnit ve XUnit (ayrıca diğer birkaç C# /. NET test çerçevesi) arasındaki çeviriyi ortaya koyar. Bununla birlikte, XUnit büyük ölçüde kurulumdan/yıkımdan kurtuldu (this article bu kararın neden yapıldığını açıklıyor). Bunun yerine, bağlantı için bazı verileri başlatabilen IUseFixture<T> adlı bir arabirimi uygulamak için test paketine ihtiyacınız vardır.

Ayrıca, bir NUnit/MbUnit arka planından gelen perspektiften yazılan this overview of XUnit'u da okumak isteyebilirsiniz.

+1

Teşekkürler Laepdjek. Anladım. T (of IUseFixture ) 'u (T's) yapıcısına başlatabiliriz ve tüm test yöntemlerinde paylaşılacaktır. –

+7

xUnit'in genel olarak diğer test çerçevelerinden çok daha sezgisel olduğu düşünülürse, çözümün bu kadar hantal olması şaşırtıcıdır. – nathanchere

+0

Statik kurucu kullanmak, birçok kullanım durumu için iyi bir çözüm olabilir. –