Skip to content

Latest commit

 

History

History
54 lines (39 loc) · 2.63 KB

3-parts-in-name.russian.md

File metadata and controls

54 lines (39 loc) · 2.63 KB

Включите 3 части в каждое название теста



Объяснение в один абзац

В отчете о тестировании должно быть указано, удовлетворяет ли текущая версия приложения требованиям людей, которые не обязательно знакомы с кодом: тестировщик, инженер DevOps, который развертывает, и будущее, которое вы через два года. Это может быть достигнуто наилучшим образом, если тесты говорят на уровне требований и состоят из 3 частей:

(1) Что тестируется? Например, метод ProductsService.addNewProduct

(2) При каких обстоятельствах и сценарии? Например, в метод не передается цена

(3) Каков ожидаемый результат? Например, новый продукт не утвержден



Пример кода: имя теста, состоящее из 3 частей

//1. unit under test
describe('Products Service', () => {
  describe('Add new product', () => {
    //2. scenario and 3. expectation
    it('When no price is specified, then the product status is pending approval', () => {
      const newProduct = new ProductService().add(...);
      expect(newProduct.status).to.equal('pendingApproval');
    });
  });
});



Пример кода - Антипаттерн: нужно прочитать весь тестовый код, чтобы понять намерение

describe('Products Service', () => {
  describe('Add new product', () => {
    it('Should return the right status', () => {
        //hmm, what is this test checking? what are the scenario and expectation?
      const newProduct = new ProductService().add(...);
      expect(newProduct.status).to.equal('pendingApproval');
    });
  });
});



"Как правильно сделать пример: отчет об испытаниях напоминает документ с требованиями"

From the blog "30 Node.js testing best practices" by Yoni Goldberg

A test report example