Задать вопрос
@sl1m_dogg

Что не так с моими тестами на PHP?

<?php

namespace Tasks\tests;

/*
require_once '../tasks/task3/Lesson.php';
require_once '../tasks/task3/Grammar.php';
require_once '../tasks/task3/Speaking.php';
require_once '../Tasks/task3/Strategy/CostStrategy.php';
require_once '../tasks/task3/Strategy/TimeStrategy.php';
require_once '../tasks/task3/Strategy/FixedStrategy.php';
*/
use Tasks\task3\Grammar;
use Tasks\task3\Speaking;
use Tasks\task3\Strategy\FixedStrategy;
use Tasks\task3\Strategy\TimeStrategy;

class TestLessons extends \PHPUnit_Framework_TestCase
{
    public function testLessonsGrammarFixedCostGood()
    {
        for ($i = 0; $i < 2; $i++) {
            $grammar = new Grammar(2, new FixedStrategy());
            $this->assertEquals(600, $grammar->cost());
        }
    }

    public function testLessonsSpeakingTimedCostGood()
    {
        for ($i = 0; $i < 2; $i++) {
            $spaeking = new Speaking(3, new TimeStrategy());
            $this->assertEquals(900, $spaeking->cost());
        }
    }

    public function testLessonsGrammarTimedCostBad()
    {
        for ($i = 0; $i < 2; $i++) {
            $grammar = new Grammar(3, new TimeStrategy());
            $this->assertNotEquals(900, $grammar->cost());
        }
    }
}


Когда запускаю phpunit TestLessons.php пишет Class Tasks\task3\Grammar not found, в композере psr-0 норм прописан, пытался phpunit --bootstrap path_to_autoload, пытался прямо в тесты рекуаер подключить, все тоже самое
  • Вопрос задан
  • 337 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя Дмитрий Энтелис К ответам на вопрос (3)
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Режим телепата:

1. Вместо use Tasks\task3\Grammar; все таки правильнее писать use \Tasks\task3\Grammar;

2. Покажите начало файла tasks/task3/Grammar.php

3. Насколько я помню без явного указания --bootstrap, автозагрузка работать не будет - но раз у Вас все падает и с require_once проблема явно не в этом.
Ответ написан