dingus

Софтуер снимки:
dingus
Софтуер детайли:
Версия: 0.3.4
Дата на качване: 14 Apr 15
Розробник: Gary Bernhardt
Разрешително: Безплатно
Популярност: 76

Rating: 4.0/5 (Total Votes: 2)

dingus е нещо като макет обект. Основната разлика е, че не се създаде очаквания преди време. Можете просто стартирате вашия код, с помощта на dingus на мястото на друг обект или клас, и тя ще запише това, което се случва с него. След това е бил упражняван веднъж е кода си, можете да се правят твърдения за това, което той вършеше за dingus.
Нов dingus се създава от класа Dingus. Можете да дадете имена dinguses, което помага с отстраняване на грешки на тестове, особено когато има множество dinguses в играта.
& Nbsp; >>> от dingus внасят Dingus
& Nbsp; >>> г = Dingus ("корен")
& Nbsp; >>> г
& Nbsp;
Достъп до всеки атрибут на dingus ще върне нови dingus.
& Nbsp; >>> d.something
& Nbsp;
Има няколко изключения за специални dingus методи. Ще видим някои по малко.
A dingus също може да се нарече като функция или метод. Тя не се интересува колко аргументи ви го дам, или това, което тези доводи са. Разговори към една dingus винаги ще се върнат един и същ обект, независимо от аргументите.
& Nbsp; >>> г ()
& Nbsp;
& Nbsp; >>> г ("аргумент")
& Nbsp;
& Nbsp; >>> г (55)
& Nbsp;
<Силен> ЗАПИСВАНЕ И твърдения
По всяко време можем да получите списък на повиквания, които са били нанесени в dingus. Всяко вписване в списъка на повикванията съдържа:
& Nbsp; * името на метода, наречен (или "()", ако самата dingus се нарича)
& Nbsp; * Аргументите, или (), ако никоя
& Nbsp; * argumnets ключовата дума, или {}, ако никоя
& Nbsp; * Стойността, която се връща на повикващия
Ето списък на поканите, които сме направили, за да г досега:
& Nbsp; >>> от pprint внос pprint
& Nbsp; >>> pprint (d.calls)
& Nbsp; [("()", (), {}, ),
& Nbsp; ("()", ("аргумент",), {}, ),
& Nbsp; ("()", (55,), {}, )]
Можете да филтрирате разговори по име, доводи и аргументи по ключови думи:
& Nbsp; >>> pprint (d.calls ('()', 55))
& Nbsp; [("()", (55,), {}, )]
Ако не ви е грижа за стойност конкретен аргумент, можете да използвате DontCare на стойност, когато филтриране:
& Nbsp; >>> от dingus внасят DontCare
& Nbsp; >>> pprint (d.calls ("()", DontCare))
& Nbsp; [("()", ("аргумент",), {}, ),
& Nbsp; ("()", (55,), {}, )]
Dinguses могат да направят повече от това просто да имат атрибути достъпни и да се нарича. Те подкрепят много оператори Python. Целта е да се даде възможност, и се записва, всяко взаимодействие:
& Nbsp; >>> г = Dingus ("корен")
& Nbsp; >>> (2 ** d.something) ["здравей"] () / 100 * "трънки"
& Nbsp;
(Дано си в реалния свят dingus записи няма да изглеждат по този начин!)
<Силен> изкърпване
Dingus осигурява контекст мениджър за изкърпване предмети по време на изпитванията. Например:
& Nbsp; >>> от dingus внос пластир
& Nbsp; >>> внос urllib2
& Nbsp; >>> с пластир ("urllib2.urlopen"):
& Nbsp; ... печат urllib2.urlopen .__ class__
& Nbsp; <клас "dingus.Dingus '>
& Nbsp; >>> печат urllib2.urlopen .__ class__
& Nbsp; <тип "функция">
Можете да използвате това като декоратор на вашите методи за изпитване:
& Nbsp; >>>patch ("urllib2.urlopen")
& Nbsp; ... Def test_something (самостоятелно):
& Nbsp; ... пас
& Nbsp; ...
<Силен> ОПАСНО MAGIC
Dingus може автоматично да замени глобални един модул, когато използвате тестове. Това ви позволява да пишете напълно изолирани на тестове. Виж примери / urllib2 / test_urllib2.py за пример. Авторът не препоръчва тази функция, тъй като тя може да насърчи много крехки тестове. Вие трябва да се чувства болката на ръчно подигравателни зависимости; . болката ще ви кажа, когато класа си сътрудничи с твърде много други

<силни> Изисквания :

  • Python

Подобен софтуер

Друг софтуер на разработчика Gary Bernhardt

expecter
expecter

20 Feb 15

Коментари към dingus

Коментари не е намерена
добавите коментар
Включете на изображения!