Skip to content

Commit

Permalink
Trying spoiler with code format
Browse files Browse the repository at this point in the history
  • Loading branch information
shanginn committed Jul 30, 2022
1 parent 27c89ba commit bc2d33c
Showing 1 changed file with 29 additions and 29 deletions.
58 changes: 29 additions & 29 deletions _posts/2022-07-23-avito-interview-technical-screening.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ tags:

## Каким образом можно можно запускать один и тот же тест на разном наборе данных
<details>
<summary>## Каким образом можно можно запускать один и тот же тест на разном наборе данных</summary>
<summary>Ответ</summary>
<!-- have to be followed by an empty line! -->
В PHPUnit можно запускать один и тот же тест с разными данными с помощью data provider'а:
Специальная функция, которая возвращает массив массивов с аргументами теста. У этой функции должна быть аннотация `@dataProvider` и названием метода.
Expand All @@ -47,34 +47,34 @@ tags:
<!-- have to be followed by an empty line! -->
вместо такого теста

```php
public function testSomething()
{
$data = [[1, 1, true], [1, 4, false]];
foreach($data as $dataSet) {
$this->assertEquals($dataSet[2], $dataSet[0] === $dataSet[1]);
}
}
```

Напишем data provider - функция, которая вернём необходимые наборы данных и обозначим его в нашем тесте:
```php
/**
* @dataProvider dataProviderForTest
**/
public function testSomething(int $left, int $right, bool $expected)
{
$this->assertEquals($expected, $left === $right);
}

public function dataProviderForTest()
{
return [
[1, 1, true],
[1, 4, false]
];
}
```
```php
public function testSomething()
{
$data = [[1, 1, true], [1, 4, false]];
foreach($data as $dataSet) {
$this->assertEquals($dataSet[2], $dataSet[0] === $dataSet[1]);
}
}
```
Напишем data provider - функция, которая вернём необходимые наборы данных и обозначим его в нашем тесте:
```php
/**
- @dataProvider dataProviderForTest
**/
public function testSomething(int $left, int $right, bool $expected)
{
$this->assertEquals($expected, $left === $right);
}
public function dataProviderForTest()
{
return [
[1, 1, true],
[1, 4, false]
];
}
```

И PHPunit запустит тест 2 раза и в случае ошибки покажет, на каком именно наборе данных она произошла.

Expand Down

0 comments on commit bc2d33c

Please sign in to comment.