diff --git a/07-errors_and_testing.slide b/07-errors_and_testing.slide index 555ace0..44c2f00 100644 --- a/07-errors_and_testing.slide +++ b/07-errors_and_testing.slide @@ -331,10 +331,10 @@ Go 2?! * Оркестрация на тестове -- За тестове които искаме да пропуснем викаме `t.Skip()` +- За тестове, които искаме да пропуснем, викаме `t.Skip()` - Тестовете вървят последователно освен ако не бъде извикано `t.Parallel()` - Препоръчва се да се извика в началото на функцията -- Сигнализира че тест може да бъде изпълняван парелно с и само с други тестове извикали `t.Parallel()` +- Сигнализира, че тест може да бъде изпълняван паралелно с и само с други тестове, извикали `t.Parallel()` * Benchmark тестове @@ -411,14 +411,14 @@ Go 2?! table_test.go:68: Expected 55 for Fiboncci(10) but got 21 FAIL -- Важно е да се отбележи че подтестовете са независими един от друг. Дори един да се провали, другите ще се изпълнят +- Важно е да се отбележи, че подтестовете са независими един от друг. Дори един да се провали, другите ще се изпълнят - Тъй като са именувани, то не се налага да идентифицираме в кой случай се е случила грешката * SubBenchmarks - В случая на Benchmark-овете това е дори още по полезно - Понеже Benchmark-овете се измерват от началото на Benchmark функцията до нейното завършване, правенето на таблични Benchmark-ове е невъзможно -- Но в 1.7 можем да ползвам под Benchmark-ове +- Но в 1.7 можем да ползваме под Benchmark-ове .code code/errors_and_testing/table_test.go /func BenchmarkSubFibonacci/,/SUB BENCHMARK OMIT/ @@ -459,7 +459,7 @@ Go 2?! Foo -> ExampleFoo - За метод `Bar` го слагаме с подчертавка след типа `ExampleFoo_Bar` - Пишем няколко реда, в които използваме нашия тип -- Можем да завършим с коментар започващ с `Output:` и ще бъде тествано че изхода на кода съвпада с останалата част от коментара +- Можем да завършим с коментар започващ с `Output:` и ще бъде тествано, че изхода на кода съвпада с останалата част от коментара - Влиза в документацията на пакета като пример .code code/errors_and_testing/testing.go /func Example/,/END EXAMPLE/ @@ -468,18 +468,18 @@ Go 2?! * Иматации или Mock-ове -- Често се случва да искаме да тестваме код който си говори с друг код или тотално отделна система +- Често се случва да искаме да тестваме код, който си говори с друг код или тотално отделна система - Примерно paypal -- Искаме да сме сигурно че работим правилно с api-то на Paypal във всичките случаи които имаме -- Но не искаме да плащаме на paypal пари всеки път като си пуснем тестовете -- Също важи и когато не искаме да ни фейлват тестовете за една част от кода само защото ползва друга която в момента е бъгава -- Тогава правим имитации или Mock-ове - код, който подръжава на друг но без да ни изпрезва кредитните карти +- Искаме да сме сигурни, че работим правилно с api-то на Paypal във всичките случаи, които имаме +- Но не искаме да плащаме на paypal пари всеки път, като си пуснем тестовете +- Също важи и когато не искаме да ни фейлват тестовете за една част от кода само защото ползва друга, която в момента е бъгава +- Тогава правим имитации или Mock-ове - код, който подръжава на друг но без да ни изпразва кредитните карти * В Go -- Ако искам да можем да mock-нем нещо в тестовете си ще е необходимо да можем да го подменим в тях -- За разлика от някои други по динамични езици в които може да подменим time.Sleep или os.Read с наши имплементации, Go трябва да сме малко по имплицитни -- Обикновенно трябва да се приемат интерфейс(и) които имплементират функционалността която искаме примерно Sleeper +- Ако искаме да можем да mock-нем нещо в тестовете си, ще е необходимо да можем да го подменим в тях +- За разлика от някои други по динамични езици, в които може да подменим time.Sleep или os.Read с наши имплементации, в Go трябва да сме малко по имплицитни +- Обикновенно трябва да се приемат интерфейс(и), които имплементират функционалността, която искаме примерно Sleeper type Sleeper interface { Sleep(time.Duration) @@ -503,7 +503,7 @@ Go 2?! * mockery .link https://github.com/vektra/mockery -- Библиотека занимаваща се специално с... mockery +- Библиотека, занимаваща се специално с... mockery * mock