PHPUnit Нет такого файла или каталога или класс не найден - PullRequest
0 голосов
/ 23 января 2020

Я читал другие вопросы, связанные с этой проблемой. Но, похоже, предложенные ответы не смогли решить мою проблему.

Структура каталога моего проекта:

src/Tarifa.php
database/dbconect.php
tests/TarifaTest.php
vendor/
composer.json
composer.lock
phpunit.xml

Composer Json

{
    "require": {
        "phpunit/phpunit": "^8.5"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

Класс Tarifa

<?php
include("../database/dbconect.php");
$pdo = conectar();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

    class Tarifa {

        public function getOrigem() {
            $pdo = conectar(); 
            $dddOrigem = $pdo->prepare("SELECT origem FROM tarifa_fixa");   
            $dddOrigem->execute(); 
            $array = array();
            foreach($dddOrigem as $key => $origem){
                array_push($array, $origem);
            }
            return $array;
        }

        public function getDestino($id) {
            $pdo = conectar(); 
            $dddDestino = $pdo->prepare("SELECT destino FROM tarifa_fixa WHERE origem = :id");
            $dddDestino->bindvalue(':id',$id);
            $dddDestino->execute();
            if($dddDestino->rowCount() > 0){
                $array = array();
                foreach($dddDestino as $key => $destino){
                    array_push($array, $destino);
                }
            }
            return json_encode($array,true);
        }

        public function calculaTarifa($origem, $destino, $tempo, $plano){
            $pdo = conectar();
            $tarifaFixa = $pdo->prepare("SELECT valor FROM tarifa_fixa WHERE origem = :origem AND destino = :destino");
            $tarifaFixa->bindvalue(':origem',$origem);
            $tarifaFixa->bindvalue(':destino',$destino);
            $tarifaFixa->execute();
            $tarifaFixa = $tarifaFixa->fetch(PDO::FETCH_ASSOC)['valor'];

            if($plano == 'faleMais30'){
                if($tempo > 30) {
                    $tempoExcedido = $tempo - 30;
                    $valorComPlano = $tempoExcedido * $tarifaFixa;
                }
                else {
                    $valorComPlano = 0;
                }
                $valorSemPlano = $tarifaFixa * $tempo;
            }
            else if($plano == 'faleMais60'){
                if($tempo > 60) {
                    $tempoExcedido = $tempo - 60;
                    $valorComPlano = $tempoExcedido * $tarifaFixa;
                }
                else {
                    $valorComPlano = 0;
                }
                $valorSemPlano = $tarifaFixa * $tempo;
            }
            else if($plano == 'faleMais120'){
                if($tempo > 120) {
                    $tempoExcedido = $tempo - 120;
                    $valorComPlano = $tempoExcedido * $tarifaFixa;
                }
                else {
                    $valorComPlano = 0;
                }
                $valorSemPlano = $tarifaFixa * $tempo;
            }
            $array = array($valorComPlano,$valorSemPlano);
            return json_encode($array,true);
        }
    }
?>

TarifaTest

<?php

use App\Tarifa;
use PHPUnit\Framework\TestCase;

class TarifaTest extends \PHPUnit\Framework\TestCase {

    public function testValorTempoMenorQuePlanoFaleMais30(){

        $tarifa = new Tarifa();
        $tarifa->calculaTarifa();

        $this->assertEquals(0, $tarifa->calculaTarifa(011, 016,20, 'FaleMais30'));
    }
}
?>

Ошибка

There was 1 error:

1) TarifaTest::testValorTempoMenorQuePlanoFaleMais30
include(../database/dbconect.php): failed to open stream: No such file or directory

C:\xampp\htdocs\Telzir\src\Tarifa.php:2
C:\xampp\htdocs\Telzir\src\Tarifa.php:2
C:\xampp\htdocs\Telzir\tests\TarifaTest.php:10

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

Итак, если я изменю включение в Тарифе. php, чтобы включить (./ database / dbconect. php), ошибка изменится на:

There was 1 error:

1) TarifaTest::testValorTempoMenorQuePlanoFaleMais30
Error: Class 'App\Tarifa' not found

C:\xampp\htdocs\Telzir\tests\TarifaTest.php:10

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

Но если я это сделаю, программа больше не работает.

Помогите мне, пожалуйста!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...