加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:09:05 所属栏目:PHP教程 来源:网络整理
导读:我是 PHPUnit的新手,我想将它与Netbeans一起使用.我已经知道PHPUnit有自己的文档,但是没有太多关于如何在Netbeans中使用它的文档.首先看一些有用的例子会很棒.我这样学得更好. 所以从Netbeans站点他们给出了这个例子然后你会右键单击File-创建PHPUnit测试以
我是 PHPUnit的新手,我想将它与Netbeans一起使用.我已经知道PHPUnit有自己的文档,但是没有太多关于如何在Netbeans中使用它的文档.首先看一些有用的例子会很棒.我这样学得更好.

所以从Netbeans站点他们给出了这个例子然后你会右键单击File->创建PHPUnit测试以自动生成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;}

}

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读