【发布时间】:2017-03-15 13:13:27
【问题描述】:
我有这个文件结构:
- module
-- phpunit.xml
-- blaat.php
-- tests
--- blaatTest.php
blaat.php 的内容
class Blaat
{
public function doSomething()
{
return 'my return value';
}
}
测试内容/blaatTest.php
use PHPUnit\Framework\TestCase;
require_once './blaat.php';
class blaatTest extends TestCase
{
public function testCanBeCreatedFromValidEmailAddress(): void
{
$stub = $this->createMock(Blaat::class);
$this->assertEquals('foo', $stub->doSomething());
}
}
phpunit.xml 的内容
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
bootstrap="./tests/bootstrap.php">
<testsuites>
<testsuite name="unit">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
<directory suffix=".php">vendor</directory>
</blacklist>
</filter>
</phpunit>
当我在终端中运行 phpunit 时(当我在 modules 文件夹中时)我得到了这个:
PHPUnit 6.0.8 by Sebastian Bergmann and contributors.
F 1 / 1 (100%)
Time: 427 ms, Memory: 22.00MB
There was 1 failure:
1) blaatTest::testCanBeCreatedFromValidEmailAddress
Failed asserting that null matches expected 'foo'.
/path/to/module/tests/blaatTest.php:19
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
这怎么可能?我的方法总是返回一个字符串,但是 phpunit 说它得到一个空值作为返回。 我在这里做错了什么?
【问题讨论】:
标签: php unit-testing testing phpunit