您可以发布有关如何将PHPUnit与NetBeans一起使用的示例吗?

时间:2011-10-01 21:09:53

标签: php netbeans phpunit

我是PHPUnit的新手,我想将它与Netbeans一起使用。我已经知道PHPUnit有自己的文档,但是没有太多关于如何在Netbeans中使用它的文档。首先看一些有用的例子会很棒。我这样学得更好。

所以从Netbeans网站上他们给出了这个例子,然后你会Right Click File - > Create PHPUnit Tests自动生成PHPUnit类:

class Calculator{
    /**
     * @assert (0,0) == 0
     * @assert (0,1) == 1
     * @assert (1,0) == 1
     * @assert (1,1) == 2
     * @assert (1,2) == 4
     */
    public function add($a, $b){
        return $a + $b;
    }

}

然而,我正在阅读另一本PHP书,并在其中以这种方式执行

class Session {
    public function __construct($one, $two){}
    public function login(){}
    public function isLoggedIn() {return null;}
}

require_once("PHPUnit/Autoload.php");

class TestSession extends PHPUnit_Framework_TestCase {

    private $_session;

    function setUp() {
        $dsn = array(
            'phptype' => "pgsql",
            'hostspec' => "localhost",
            'database' => "widgetworld",
            'username' => "wuser",
            'password' => "foobar"
        );
        $this->_session = new Session($dsn, true);
    }

    function testValidLogin() {
        $this->_session->login("ed", "12345");
        $this->assertEquals(true, $this->_session->isLoggedIn());
    }

    function testInvalidLogin() {
        $this->_session->login("ed", "54321"); // fail
        $this->assertEquals(false, $this->_session->isLoggedIn());
    }
}
$suite = new PHPUnit_Framework_TestSuite;
$suite->addTest(new TestSession("testValidLogin"));
$suite->addTest(new TestSession("testInvalidLogin"));
$testRunner = new PHPUnit_TextUI_TestRunner();
$testRunner->run( $suite );

你能通过转换上面的例子来帮助我理解如何在Netbeans中进行PHPUnit测试吗?感谢

我不知道但Netbeans会做这样的事情是对的吗?:

class Session {

    public function __construct($one, $two) {}

    public function login() {
        /**
     * @assert ("ed", "12345")->isLoggedIn() == true
     */

     /**
     * @assert ("ed", "54321")->isLoggedIn() == false
     */
    }

    public function isLoggedIn() {return null;}

}  

2 个答案:

答案 0 :(得分:3)

我从未在NetBeans中使用@assert,但看起来它们只是告知测试用例生成器如何编写测试。最后,NetBeans为该类创建了一个类似于上面TestSession的测试用例(尽管它将被称为SessionTest)。

如果您使用@assert来定义测试数据,请记住,每次更改测试数据时都需要重新生成测试,这将覆盖您在测试后对测试用例所做的任何更改。我建议手动编写测试用例,因为在编写测试会话时不能使用@assert。它被设计为编写类似“给定参数X,Y和Z,返回值应为R”的测试。您无法使用它来测试方法的副作用。

答案 1 :(得分:1)

要在Netbeans中进行PHPUnit测试,请执行以下操作。

  1. 转到“文件”>来自主要人物的“项目属性”
  2. 然后选择单击对话框窗口左侧垂直菜单上的“PHPUnit”选项卡
  3. 选择运行PHPUnit的选项,例如使用引导程序文件或XML或自定义套件
  4. 然后,转到“运行”>主菜单中的“测试项目”
  5. 然后,系统将提示您选择测试文件的位置
  6. 然后,如果您没有为Netbeans配置它,还会提示您的计算机上的PHPUnit shell脚本或bat文件(在Windows上)的位置
  7. 如上所述正确设置后,每次需要运行测试用例时,请转到“运行”>菜单中的“测试项目”