@symfony_php

Страница 35 из 1418
Sergey
23.12.2016
12:58:07
хз мне как-то неудобен спек

Sergey
23.12.2016
12:58:17
нельзя статику тестить?)

Sergey
23.12.2016
12:58:32
сам подход уебанский какой-то)

Sergey
23.12.2016
12:58:54
я за 3 года что спек юзаю раза 2 так думал

Google
Sergey
23.12.2016
12:59:23
сейчас чуть подуспокоился и снова получаю удовольствие, а "уебанство подходов" удавалось списывать на то что я пишу говно

Sergey
23.12.2016
12:59:37
https://github.com/fesor/shop-example/blob/master/spec/Model/Catalog/ProductBuilderSpec.php о чем этот тест вообще непонятно к примеру

Sergey
23.12.2016
12:59:53
ну то етсь... тупо спеку сгенерили но ничего в ней не написали

Sergey
23.12.2016
13:00:21
https://github.com/fesor/shop-example/blob/master/spec/Model/Order/OrderLineSpec.php ну или вот, откуда взялся $this->price();?

$this->beConstructedWith( CatalogFakeData::randomProductWithPrice(10), 10 ); что тут произойдет?

Sergey
23.12.2016
13:00:40
$this - это тестируемый объект

Sergey
23.12.2016
13:00:48
омг

Sergey
23.12.2016
13:01:00
ты описываешь спеку этого самого $this

что мол $this->price() должен вернуть такую-то фигню

Sergey
23.12.2016
13:01:14
у тебя в перемешку идут методы фреймворка и того что ты тестишь?

Sergey
23.12.2016
13:01:38
эм.... не совсем. Я на митинг, минут через 30-40 похоливарим)

Mihail
23.12.2016
13:08:34
а у нас сегодня пьянка)

Google
Mihail
23.12.2016
13:08:40
йохохо

)

Sergey
23.12.2016
13:22:25
ты можешь пока накидывать

Sergey
23.12.2016
13:25:21
давай наоборот, убеди меня что это удобно)

и что пхпюнит неудобно

Sergey
23.12.2016
13:27:25
давай сначала определимся. Если ты пишешь сначала код а потом тесты, то phpspec ненужен

а если ты tdd делаешь или делаешь хотя бы какой-то процент времени

то phpspec уже становится удобным

Sergey
23.12.2016
13:28:18
эм, что мне мешает генерить код из пхпюнита?

Sergey
23.12.2016
13:28:29
ну.... то что он этого не умеет?

ну то есть в теории можно запилить но тяжко

Sergey
23.12.2016
13:28:52
пхпшторм умеет ведь

или что именно он неумеет?

Aleh
23.12.2016
13:29:18
пхпспек ж няшненько с тайпхинтами и все такое

и автомоки по тайпхинту

уняня

Sergey
23.12.2016
13:29:31
шта?

Sergey
23.12.2016
13:29:39
шта?)

Sergey
23.12.2016
13:29:48
как по мне пхпспек это хрень которая не поддерживается в пхпшторме)

Aleh
23.12.2016
13:29:52
и автомоки по тайпхинту
пхпспек генерит с тайпхинтами

Google
Aleh
23.12.2016
13:29:53
сам

и автоматически тестдаблы по тайпхинтам делает

это ж прикольно)

Sergey
23.12.2016
13:30:48
пример?

Sergey
23.12.2016
13:31:01
пример?
ты пишешь в спеке

$this->callFunction($string, $int);

и оно тебе сгенерит

public function callFunction(string $string, int $int) { }

Aleh
23.12.2016
13:31:55
it_asdasd_asd(User $user) { // $user тут уже тестдабл $this->blahblah($user) ... // получишь blahblah с type hint }

Sergey
23.12.2016
13:32:31
ок, пишу $myObj->callFunction($string, $int); жмакаю Add Method и мне создается метод)

Aleh
23.12.2016
13:33:14
ну с тестдаблами так не выйдет

Aleh
23.12.2016
13:35:09
описывает какой-нибудь emailsender it_should_send_email(User $user, Mailer $mailer) { $mailer->send()->shouldBeCalled(...); $this->sendTo($user); }

получаешь метод sendTo загенеренный

пример так себе

просто что в голову пришло)

Sergey
23.12.2016
13:36:35
юзер приходит моком?

Aleh
23.12.2016
13:37:35
да

и Mailer

Sergey
23.12.2016
13:38:59
пока сложно представить зачем нужны моки в том что приходит в метод

Google
Sergey
23.12.2016
13:39:02
разве что дабл диспатч

https://github.com/Enleur/todoapp/blob/master/src/AppBundle/Tests/Service/TodoServiceTest.php вот типичный тест в пхп юнит

более читабельный же

Sergey
23.12.2016
13:39:34
окей

Sergey
23.12.2016
13:40:28
при желании можно вместо обычных $this->taskRepository->expects($this->once()) ->method('getTask') ->with($listId, $taskId) ->willReturn($task);

юзать prophet

из phpspec, он уже в пакете с пхпюнит идет бонусом

Sergey
23.12.2016
13:42:39
а теперь коронка

phpspec не позволи тебе много плохого сделать

Admin
ERROR: S client not available

Sergey
23.12.2016
13:42:59
например?

Sergey
23.12.2016
13:43:05
он очень жестко тебя ограничивает в том, какой код ты можешь тестить

любое говно становится дико неудобно тестировать

и ты очень быстро начинаешь понимать что пишешь говно

Sergey
23.12.2016
13:43:24
ну у меня с этим проблем как-то не было

хочешь - пиши интеграционные

хочешь юнит

Sergey
23.12.2016
13:43:34
в phpunit же ты можешь "обманывать" себя сколько захочешь

и делать так как тебе удобно

Sergey
23.12.2016
13:43:39
хочешь вообще танцуй

Google
Sergey
23.12.2016
13:43:49
ну пхпюнит же не только для юнит тестов расчитан

Sergey
23.12.2016
13:43:52
я говорю только о юнит тестах

Sergey
23.12.2016
13:43:53
так что головой думать надо)

Sergey
23.12.2016
13:43:54
какие интеграционные

о чем ты?

Sergey
23.12.2016
13:43:58
а интеграционные ты пишешь?

Sergey
23.12.2016
13:44:06
так что головой думать надо)
ты джунам тоже так будешь говорить?)

Sergey
23.12.2016
13:44:17
у меня нет джунов

да и не было проблем с джунами

dredd, phpunit
вооопрос - а нах мне знать 2 API, phpspec и phpunit

если я могу писать только на phpunit и не париться?)

Sergey
23.12.2016
13:44:46
я вот еще думаю как выкинуть phpunit вообще

у меня сейчас он юзается только для проверки репозиториев

и все

Steven
23.12.2016
13:46:36
О чем они вообще...

Sergey
23.12.2016
13:47:01
ну в общем не убедили

не вижу причин чем пхпспек лучше)

и да о джунах

приходит джун, дается ему книга по TDD, в которой xUnit рассматривается

он садится и начинает писать тесты

Страница 35 из 1418