我正在开发一个 PHP 项目并使用 PHPUnit 和 Doctrine 2。我使用的是最新版本。我写了很多测试来测试所有的类、函数和行为。测试始终在运行。一切正常。由于我使用 Doctrine,因此我应用了最佳实践技巧并在构造函数中初始化了 ArrayCollection。
public function __construct($username, $eMail, $password1, $password2) {
$this->quiz = new ArrayCollection();
$this->sessions = new ArrayCollection();
$this->setUsername($username);
$this->setEMail($eMail);
$this->setPassword('', $password1, $password2);
}
ArrayCollection 的包含是:
use Doctrine\Common\Collections\ArrayCollection;
此后,PHPUnit 测试不再运行。
当我用初始化注释该行时,所有测试都会再次运行。成员测验和会议是私人的。该应用程序通常有效。
我是 Doctrine 2 和 PHPUnit 的新手。到目前为止,我已经尝试了很多东西,比如测试用例中的不同包含等。但没有任何帮助。也许我在测试用例中忘记了一些东西。在 ArrayCollection 的步骤初始化和没有初始化之间,我在测试用例中没有更改任何内容。
测试用例如下所示:
namespace Model;
require_once dirname(__FILE__) . '/../../Model/User.php';
/**
* Test class for User.
* Generated by PHPUnit on 2012-04-03 at 14:48:39.
*/
class UserTest extends \PHPUnit_Framework_TestCase {
/**
* @var User
*/
protected $user;
// constructor of the test suite
function UserTest($name) {
$this->PHPUnit_TestCase($name);
}
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp() {
$username = 'musteruser';
$eMail = 'must@muster.ch';
$pw = 'muster.muster';
$this->user = new User($username, $eMail, $pw, $pw);
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown() {
unset($this->user);
}
现在我真的不知道可能是什么问题。也许有人已经经历过同样的事情,或者知道可能是什么问题。
谢谢你的帮助。