ミッションとバリュー
新たな価値を生みだす
世界的なマーケットプレイスを創る
Create value in a global marketplace
where anyone can buy & sell
Be Professional
プロフェッショナルであれ
All for One
全ては成功のために
Go Bold
大胆にやろう
5
新しいPHPで動かなくなるリスク
PHP 7.2 で PHPUnit 4を動かすとDeprecatedエラー
➔ 将来のPHPで動かなくなる可能性あり
$ php vendor/bin/phpunit
PHP Deprecated: The each() function is deprecated. This message will
be suppressed on further calls in
vendor/phpunit/phpunit/src/Util/Getopt.php on line 38
PHPUnit 5 -> 6
前方互換レイヤの足りない分は自作
// Forward Compatibility to PHPUnit6
namespace PHPUnit\Framework\Constraint;
if (!class_exists('PHPUnit\\Framework\\Constraint\\Constraint', true)) {
class_alias('PHPUnit_Framework_Constraint',
'PHPUnit\\Framework\\Constraint\\Constraint');
}
bootstrapファイルとかに書く
Slide 74
Slide 74 text
PHPUnit 5 -> 6
TestListenerのシグネチャ問題
use PHPUnit\Framework\TestListener ;
use PHPUnit_Framework_TestSuite as TestSuite;
class MyTestListener implements TestListener
{
public function startTestSuite (TestSuite $suite)
前方互換レイヤーを使おうとするとシグネチャ不一致エラー。
引数の反変(contravariant)に違反するため。
前方互換レイヤーを使わずにお茶を濁した。
PHPUnit 6 -> 7
class Constraint
protected function matches($other): bool
interface SelfDescribing
public function toString(): string
いくつかのクラスで戻り値型宣言が追加
Slide 87
Slide 87 text
PHPUnit 6 -> 7
前方互換したいが、これは動くのか?
public function toString()
public function toString(): string
親
子
Slide 88
Slide 88 text
PHPUnit 6 -> 7
前方互換したいが、これは動くのか?
public function toString()
public function toString(): string
親
子
➔ 動く。戻り値の共変(covariant)はOK
Slide 89
Slide 89 text
PHPUnit 6 -> 7
DbUnit ver 3 -> 4
protected function setUp(): void
protected function tearDown(): void
全TestCaseに影響
→ 面倒なので自動化
https://gist.github.com/DQNEO/5471032715ada025dee51be0b6568932
Slide 90
Slide 90 text
(ちなみにPHPUnit 8)
protected function setUp(): void
protected function tearDown(): void
voidがつく予定
https://github.com/sebastianbergmann/phpunit/blob/master/src/Framework/TestCase.php#L407