पर एक ही परिणाम पर एकाधिक आवेषणों के लिए सर्वोत्तम अभ्यास परिणामस्वरूप कई आवेषण करने का सबसे साफ तरीका क्या है? अतीत में मैंने उन्हें एक ही परीक्षा दी है लेकिन यह थोड़ा गंदा महसूस करना शुरू कर रहा है, मैं बस सेटअप का उपयोग कर एक और विचार के साथ खेल रहा हूं।सी #
[TestFixture]
public class GridControllerTests
{
protected readonly string RequestedViewId = "A1";
protected GridViewModel Result { get; set;}
[TestFixtureSetUp]
public void Get_UsingStaticSettings_Assign()
{
var dataRepository = new XmlRepository("test.xml");
var settingsRepository = new StaticViewSettingsRepository();
var controller = new GridController(dataRepository, settingsRepository);
this.Result = controller.Get(RequestedViewId);
}
[Test]
public void Get_UsingStaticSettings_NotNull()
{
Assert.That(this.Result,Is.Not.Null);
}
[Test]
public void Get_UsingStaticSettings_HasData()
{
Assert.That(this.Result.Data,Is.Not.Null);
Assert.That(this.Result.Data.Count,Is.GreaterThan(0));
}
[Test]
public void Get_UsingStaticSettings_IdMatches()
{
Assert.That(this.Result.State.ViewId,Is.EqualTo(RequestedViewId));
}
[Test]
public void Get_UsingStaticSettings_FirstTimePageIsOne()
{
Assert.That(this.Result.State.CurrentPage, Is.EqualTo(1));
}
}
"लॉजिकल एसेशन" इसके लिए एक अच्छा शब्द है। यह दिलचस्प है कि एसेरशन रूले उदाहरण अनिवार्य रूप से "व्यवस्था-अधिनियम-कार्य न करने से गलत कैसे हो सकता है" का एक उदाहरण है। क्या अवधारणाएं अलग हैं? – Anthony
@ एंथनी: अवधारणाएं अलग-अलग हैं, हालांकि वे निकट से संबंधित हैं। यदि आप एएए (या चार चरण परीक्षण xUnit टेस्ट पैटर्न के रूप में इसे कॉल करते हैं) का पालन करते हैं तो आप एसेरशन रूले के दर्द को महसूस करने की बहुत कम संभावना रखते हैं, लेकिन मैं अभी भी उसी आर्ट ब्लॉक में पूरी तरह से असंबंधित प्रविष्टियों के भिन्न होने के अलग-अलग होंगे। –
सम्मिलन रूले का विचार एनर्ट में कम से कम कथन में टिप्पणी निर्दिष्ट करके कम किया जा सकता है। "Assert.That (condition)" का उपयोग करने के बजाय "Assert.That (condition, failessMessage)" जहां 'विफलता संदेश' आर्ट की जांच के बारे में जानकारी है। इससे आपको पता चल जाएगा कि यूनिट परीक्षण में कौन सा आश्वासन विफल रहा। – Pedro