내가 그들을 호출하는 대신에, 예를 들면이로, 모든 단위 테스트에서 그 (것)들을 반복하여 내 phpunit을 기능의 일부를 재사용 할 .php, 그것은 모든 단위 테스트를 위해 실행됩니다.재사용하는 방법 phpunit을 기능
어디에 넣을 수 있습니까? 또는 일반적으로 어떻게 이루어 집니까? BTW, 나는
내가 그들을 호출하는 대신에, 예를 들면이로, 모든 단위 테스트에서 그 (것)들을 반복하여 내 phpunit을 기능의 일부를 재사용 할 .php, 그것은 모든 단위 테스트를 위해 실행됩니다.재사용하는 방법 phpunit을 기능
어디에 넣을 수 있습니까? 또는 일반적으로 어떻게 이루어 집니까? BTW, 나는
분명히 문제는 테스트를 다시 사용하는 것이 아니라 예상치 못한 테스트가 호출되는 것입니다.
따라서 기존 클래스에서 "test"(testFoo, testBar)로 시작하는 이름을 가진 메소드는 테스트로 간주됩니다.
그래서 당신은 당신이 8 개 테스트해야합니다
class A extends \PHPUnit_Framework_TestCase {
public function testFoo() {...}
public function testBar() {...}
}
class B extends A {
public function testBaz() {...}
}
class C extends A {
public function testQuz() {...}
}
이 같은 클래스 A, B와 C가 경우 : a :: testFoo()하는 :: testBar(), B :: testFoo을() B :: testBar(), B :: testBaz(), C :: testFoo(), C :: testBar(), C :: testQuery().
아마도 당신이하려고 한 것이 아닙니다. testFoo와 testBar는 A와는 달리 B와 C에서만 사용할 수 있습니다.이 경우 A를 추상 클래스로 선언하면됩니다. B : testFoo(), B :: testBar(), B :: testBaz(), C :: testFoo(), C :: testBar(), C :
abstract class A extends \PHPUnit_Framework_TestCase {
public function testFoo() {...}
public function testBar() {...}
}
class B extends A {
public function testBaz() {...}
}
class C extends A {
public function testQuz() {...}
}
이제 6 개 검사를 : : testQuz().
어쩌면, 당신이 필요로하는 것일 수도 있습니다. 어쩌면 일부 계승 클래스에서만 testFoo() 및 testBar()를 사용하려고합니다.
이 경우 테스트 대신 상위 클래스에 어설 션을 설정하십시오. B : testFoo(), B :: testBaz, C : testBar(), C :: testQuz()
일반적으로이
namespace Vendor\Library\Tests;
abstract class BaseTestCase extends \PHPUnit_Framework_TestCase
{
public function assertContentNotEmpty($response) {
$this->assertNotEmpty($response);
}
}
같은 것을 확인 한 다음 테스트를이 클래스를 확장에 따라 자신의 주장을 확인 Laravel 4.를 사용하고 있습니다. 이 방법이 어떤 이유로 편리하지 않은 경우 별도의 클래스로 어설 션을 만들 수 있습니다.
setUp, tearDown 및 다른 방법은 어떨까요? 다시 반복해야합니까? 또한, TestCase를 쓰는 것과 어떻게 다른가요? 모든 테스트에서 실행되지 않습니까? 죄송합니다, phpunit을 처음 사용하셨습니다. – aiiwa
"모든 테스트를 실행 하시겠습니까?" $ this-> assertNotEmpty ($ response) 테스트를 호출 할 때만 실행됩니다. setUp, tearDown은 부모 클래스에 no를 정의 할 필요가 없지만, 테스트에서 테스트하기 위해 무언가를 다시 사용하고자한다면 할 수 있습니다. –
현재, 내 단위 테스트는 TestCase.php를 확장하고 있습니다. 내 주요 문제는, 거기에 재사용 가능한 기능을 배치하면, 그들은 나를 부르지 않고 기본적으로 실행됩니다. – aiiwa
, 단위 테스트 관련이 있어야합니다
지금, 당신은 단지 4 검사를 주장. 응답의 내용과 다른 시나리오를 설정할 때 예상되는 구체적인 차이점을 확인하십시오. – jedifans
@jedifans 자신의 단언을하기 위해 어떤 문제도 보이지 않는다. –
자신 만의 것이지만 반복적으로 각 테스트에 대해 동일한 주장을 주장하는 것은 테스트가 설정하는 내용이 달라지지 않는다는 것을 나타낸다. 모든 공동 작업자는 조롱 받아야하기 때문에 응답이 비어있을 수있는 몇 가지 명백한 경우 만 있어야합니다. – jedifans