Файл объектов огурца - опишите агрегацию - PullRequest
0 голосов
/ 26 октября 2018

Я новичок в мире огурцов, и я просто хочу описать агрегацию для контекста моего сценария. У меня есть модель и DataTransferObject, как показано ниже, и я хочу написать REST Api, который возвращает JSON.

public class Product {
  int id;
  String name;
  double basePrice;
  ProductCategory category;
}

public class ProductCategory {
  int id;
  String name;
  List<Customization> possibleCustomizationsForCategory;
}

public class Customization {
  int id;
  String characteristic;
  double additionalPrice;
}

public class ProductDTO {
  int productId;
  String productName;
  double basePrice;
  Size size;
  int productCategoryId;
  String productCategoryName;
  List<Integer> possibleCustomizationIds;
}

Я хочу написать что-то вроде этого:

Given the system has persisted the following products
When a client requests GET /products
Then he will receive a JSON like the following:
  """
   [
    {
     "productId": 1,
     "productName": "Kaffee",
     "basePrice": 2.00,
     "size": "SMALL",
     "productCategoryId": 1,
     "productCategoryName": "Hot Drinks",
     "possibleCustomizationIds": [1,2,3,4,5,6]
    },
    {
     "productId": 2,
     "productName": "Kaffee",
     "basePrice": 3.0,
     "size": "MEDIUM",
     "productCategoryId": 1,
     "productCategoryName": "Hot Drinks",
     "possibleCustomizationIds": [1,2,3,4,5,6]
    }
    {
     "productId": 3,
     "productName": "Cookie",
     "basePrice": 1.0,
     "size": "SMALL",
     "productCategoryId": 1,
     "productCategoryName": "Biscuite",
     "possibleCustomizationIds": [8,9]
    }
   ]
  """

Но как мне написать данную часть и описать объект так, чтобы было ясно, что существуют три разных класса с агрегациями?

1 Ответ

0 голосов
/ 06 ноября 2018

Я бы держал Gherkin на более деловом языке, который описывает проблему, которую вы пытаетесь решить.

Тогда я бы попросил определения шагов описать решение проблемы.

Следовательно, ваш корнишон мог бы быть:

Given the following products are in stock
   | Product       |
   | Small Kaffee  |
   | Medium Kaffee |
   | Small Cookie  |
When I get a list of stock
Then I the three products should be shown as in stock
And I should be able to view the details about them

Я предположил, что это контроль запасовситуация.Затем этот сценарий может быть запущен для базы данных, веб-API или графического интерфейса и все равно должен быть верным, просто будет другое решение на месте, т.е. с использованием разных определений шагов.

...