Фалшива обект на изследване

Ако сте в екипа за развитие, повечето от кода ви ще зависи и от код, написан от съотборниците си. Но какво, ако техният код не е наличен в момента - например, си съотборник не е довършен я пиша още? И какво, ако не може да провери кода на други фактори извън контрола Ви? Ти просто се мотае наоколо прави нищо, в очакване на съотборник ще го направя.

В тази статия се покаже как да се напише код, който решава този проблем.

Фалшива обект

Какво е това, мними обекти?

- това е тест оформлението на обекта, който е част от реалния обект.

Макети обекти се използват в единица тестване, за да се симулира поведението на реални обекти в тестовете. С тяхна помощ, е по-лесно да се провери функционалността на обекта в заявлението. Ето няколко ситуации, при които трябва да се използва макет обекти:

Макети обекти в действие

Започваме със следната единица тестване, ние определяме очакванията ни за това как нашият обект ще се нарича. Върнатата стойност ще бъде:

Ако се сблъскате с този тест, вие получавате провал. Защото ние не осъзнавах!

Сега нека да пишат нашите услуги за изпълнение. Разбира се, първата стъпка е да получите данни от Facebook:

Този тест също не се осъществи, тъй като Facebook обекта е невалиден. Можете да се свържете с действителното изпълнение на реалното създаване на модел за прилагане ID на Facebook и т.н. но защо? Ако проявявате интерес, тогава нека се отклонява от задачата.

Начинът, по който това се прави с разположението на обектите, поне в нашия случай, ще трябва да се създаде клас, който има метод GET () и връща стойността на оформлението. Трябва да заблудят клиентите си, мислейки за това, което той нарича изпълнението на реален обект, когато в действителност тя е фалшива.

Сега имаме макет клас, нека да създаде копие и след това да го инжектират в StatusService, така че бихме могли да го използвате. Но първо, трябва да актуализирате StatusService инсталатор за Facebook библиотека:

Сега въведете библиотека Facebook оформление:

Тестът продължава да се провали, но поне ние не получавате съобщение за грешка, свързана с извикване на метод на обект не. По-важното е, обаче, сте платили внимание на необходимостта от прилагане на тези отношения. Сега можете да започнете програмирането на бизнес логиката.

Друга стъпка, за да: Използването на подигравателни Рамковата

Този раздел показва как да използвате подигравателни рамка, която идва с PHPUnit.

В моя опит, ето няколко предимства от използването на рамково оформление в сравнение с помощта на ръкописен подигравателен:

  • Можете да бъдете мързеливи, за да направи заявка себе си. Открих, че това особено вярно, ако се занимават с абстрактни класове с много абстрактни методи. Можете да си зададете, само някои от методите за абстрактен клас или интерфейс. Ако можете да го направите на ръка, тогава ще трябва да ги направите ръчно. Това спестява няколко натискания на клавиши, и идва предварително пакетирани видове, и да инсталирате само това, което ви трябва, и не е нужно да подкрепи нов клас за всеки тест.
  • Можете да напишете чист код. Дискретен, тук е ключовият момент. Основи Рамковата подигра направи тестовете по-лесно да разберат как ви се подиграваха написани на теста. Не е нужно да превъртите надолу, или да превключвате между файлове, да разглеждате саморъчен подигра написано в друга директория. Какво става, ако трябва да се обадите макет на обекта няколко пъти с различни резултати? се изисква за тази основа се подиграваха платформа изисква код. По този начин, много по-лесно.

Използването подигравателни Рамковата в PHPUnit

При прехода към използването на Рамковата PHPUnit, стъпки са всъщност много интуитивни. В този раздел, ние ще използваме подигравателни Рамковата в PHPUnit, за да се създаде оформление обект за този пример.

Уверете се, че най-ранната теста не работи, когато ви свършат PHPUnit.

Ето какво трябва да прави по-нататък.

  1. Първо ние определяме, която възразява на макет. В нашия пример, ние се подиграваха с Facebook библиотека. Направете същото себе си.
  2. Сега, след като установихме, че този клас се подиграваха, ние трябва да знаем какви методи в класа, че ние искаме да бъдем фиктивен индикация на параметрите и да се върнете ценности, ако има такива. Аз използвам основно шаблон в повечето случаи като този:
    1. Посочете колко пъти метод (задължително) се нарича
    2. Посочете името на метода (задължително)
    3. Настройте параметрите, че методът включва (по избор)
    4. Изберете върнатата стойност (по желание)

Нека да прилагат стъпките, които току-що са споменати в нашия тест например.

След като сме създали макет обект фейсбук го въвежда отново обратно към нашите услуги:

заключение

Ти пое случая с използването на мними обекти за тестване! Надявам се, че ще бъде в състояние да се програмира по-ефективно, и най-вече да няма препятствия, които ще срещнете в бъдеще.

интересни записи