Skip to content
This repository was archived by the owner on Apr 7, 2023. It is now read-only.

Fix typos #23

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions 07-errors_and_testing.slide
Original file line number Diff line number Diff line change
Expand Up @@ -331,10 +331,10 @@ Go 2?!

* Оркестрация на тестове

- За тестове които искаме да пропуснем викаме `t.Skip()`
- За тестове, които искаме да пропуснем, викаме `t.Skip()`
- Тестовете вървят последователно освен ако не бъде извикано `t.Parallel()`
- Препоръчва се да се извика в началото на функцията
- Сигнализира че тест може да бъде изпълняван парелно с и само с други тестове извикали `t.Parallel()`
- Сигнализира, че тест може да бъде изпълняван паралелно с и само с други тестове, извикали `t.Parallel()`

* Benchmark тестове

Expand Down Expand Up @@ -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/

Expand Down Expand Up @@ -459,7 +459,7 @@ Go 2?!
Foo -> ExampleFoo
- За метод `Bar` го слагаме с подчертавка след типа `ExampleFoo_Bar`
- Пишем няколко реда, в които използваме нашия тип
- Можем да завършим с коментар започващ с `Output:` и ще бъде тествано че изхода на кода съвпада с останалата част от коментара
- Можем да завършим с коментар започващ с `Output:` и ще бъде тествано, че изхода на кода съвпада с останалата част от коментара
- Влиза в документацията на пакета като пример

.code code/errors_and_testing/testing.go /func Example/,/END EXAMPLE/
Expand All @@ -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)
Expand All @@ -503,7 +503,7 @@ Go 2?!
* mockery

.link https://github.com/vektra/mockery
- Библиотека занимаваща се специално с... mockery
- Библиотека, занимаваща се специално с... mockery

* mock

Expand Down