TDD में Arrange Act Assert (AAA) सिंटैक्स है:
[Test]
public void Test_ReturnItemForRefund_ReturnsStockOfBlackSweatersAsTwo_WhenOneInStockAndOneIsReturned()
{
//Arrange
ShopStock shopStock = new ShopStock();
Item blackSweater = new Item("ID: 25");
shopStock.AddStock(blackSweater);
int expectedResult = 2;
Item blackSweaterToReturn = new Item("ID: 25");
//Act
shopStock.ReturnItemForRefund(blackSweaterToReturn);
int actualResult = shopStock.GetStock("ID: 25");
//Assert
Assert.AreEqual(expectedResult, actualResult);
}
BDD लेखन परीक्षण में एक समान संरचना का उपयोग किया जाता है लेकिन दिए गए जब तब (GWT) सिंटैक्स के साथ:
[Given(@"a customer previously bought a black sweater from me")]
public void GivenACustomerPreviouslyBoughtABlackSweaterFromMe()
{ /* Code goes here */ }
[Given(@"I currently have three black sweaters left in stock")]
public void GivenICurrentlyHaveThreeBlackSweatersLeftInStock()
{ /* Code goes here */ }
[When(@"he returns the sweater for a refund")]
public void WhenHeReturnsTheSweaterForARefund()
{ /* Code goes here */ }
[Then(@"I should have four black sweaters in stock")]
public void ThenIShouldHaveFourBlackSweatersInStock()
{ /* Code goes here */ }
हालांकि उन्हें अक्सर समान माना जाता है लेकिन मतभेद होते हैं। कुछ प्रमुख हैं:
जीडीडी को सीधे बीडीडी फ्रेमवर्क में एक फीचर फाइल के विनिर्देशन में मैप किया जा सकता है
सादे अंग्रेजी के उपयोग को प्रोत्साहित करके गैर-डेवलपर्स के लिए GWT को समझना आसान है, और प्रत्येक भाग क्या कर रहा है, इसका संक्षिप्त विवरण है।
दिया गया है और तब SpecDlow, और ककड़ी जैसे विभिन्न BDD चौखटे में खोजशब्द हैं
मेरा प्रश्न यह है कि AAA और GWT के बीच कोई अन्य अंतर (नामों के अलावा) हैं? और क्या इसके अलावा कोई कारण है कि ऊपर निर्दिष्ट किया गया है कि एक को दूसरे पर प्राथमिकता दी जानी चाहिए?