Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigofariat

[Resolvido] Fazendo testes com PHPUnit

Recommended Posts

Caros membros,

 

Estou fazendo alguns testes com o PHPUnit, o teste é usando a Classe Calculadora.

Quando eu tento rodar o comando phpunit vem a seguinte mensagem:

 

go@go-laptop:~/public_html/testPHP$ phpunit --verbose AllTest.php

Fatal error: Interface function ICalculadora::add() cannot contain body in /home/rodrigo/public_html/testPHP/AllTest.php on line 18

 

Pesquisei a mensagem de erro, e tudo indica que o PHP não permite metódos estáticos nas Interfaces.

Existe uma solução para isso ?

 

#/home/go/AllTest.php


<?php
require_once "/usr/share/php/PHPUnit/Framework.php";

class CalculadoraTest extends PHPUnit_Framework_TestCase {
         private $calculadora;
         protected function setUp() {
                   $this->calculadora = new Calculadora ( );
         }
         public function testDiv($arg1, $arg2) {
                   $result = $this->calculadora->div ( 30, 3 );
                   $this->assertEquals ( 10, $result );
         }
}
?>

<?php
interface ICalculadora {
         public function add($arg1, $arg2) {}
         public function sub($arg1, $arg2) {}
         public function mult($arg1, $arg2) {}
         public function div($arg1, $arg2) {}
         
} 
?>

<?php
class Calculadora implements ICalculadora {
         public function  add($arg1, $arg2) {
                   return $arg1 + $arg2;
         }
         public function  sub($arg1, $arg2) {
                   return $arg1 - $arg2;
         }
         public function  mult($arg1, $arg2) {
                   return $arg1 * $arg2;
         }
         public function  div($arg1, $arg2) {
                   return $arg1 / $arg2;
         }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

interface ICalculadora {
        public function add($arg1, $arg2) {}
        public function sub($arg1, $arg2) {}
        public function mult($arg1, $arg2) {}
        public function div($arg1, $arg2) {}

} 

 

Os métodos de um interface não podem conter um body.

Você deve trocar para isso:

 

interface ICalculadora {
        public function add($arg1, $arg2);
        public function sub($arg1, $arg2);
        public function mult($arg1, $arg2);
        public function div($arg1, $arg2);

} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.