Динамично создайте тесты PHPUnit из файла данных

Я полагаю сообщество Python ActiveState быть большим ресурсом. Также Отрывки DZone могут быть полезными.

7
задан 30 November 2009 в 20:25
поделиться

2 ответа

Ну, файлы PHP - это просто текстовые файлы, поэтому вы можете написать сценарий TestGenerator.php, который будет читать файл данных и выдавать кучу тестовых файлов .php. Сценарий генератора тестов будет таким же простым, как «прочитать строку, проанализировать ее, выплюнуть PHP». Затем просто запустите этот сценарий генератора тестов как часть процесса сборки / тестирования, и все готово.

0
ответ дан 6 December 2019 в 21:14
поделиться

Вы можете использовать поставщиков данных PHPUnit для этого:

<?php

require_once 'PHPUnit/Framework/TestCase.php';

class ProviderTest extends PHPUnit_Framework_TestCase
{
    public function testCaseProvider()
    {
        // parse your data file however you want
        $data = array();
        foreach (file('test_data.txt') as $line) {
            $data[] = explode("\t", trim($line));
        }

        return $data;
    }

    /**
     * @dataProvider testCaseProvider
     */
    public function testAddition($num1, $num2, $expectedResult)
    {
        $this->assertEquals($expectedResult, $num1 + $num2);
    }
}

?>

и ваш файл test_data.txt выглядит примерно так:

1   2   3
2   2   4
3   5   7

Затем запустите тест:

$ phpunit ProviderTest.php
PHPUnit 3.4.12 by Sebastian Bergmann.

...F

Time: 0 seconds, Memory: 5.75Mb

There was 1 failure:

1) ProviderTest::testAddition with data set #2 ('3', '5', '7')
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-7
+8

/Users/dana/ProviderTest.php:23

FAILURES!
Tests: 4, Assertions: 3, Failures: 1.
12
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: