【问题标题】:Could you post examples on how to use PHPUnit with NetBeans?您能否发布有关如何将 PHPUnit 与 NetBeans 一起使用的示例?
【发布时间】:2011-10-04 06:19:25
【问题描述】:

我是 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;}

}  

【问题讨论】:

    标签: php netbeans phpunit


    【解决方案1】:

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

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

    【讨论】:

    • @assert 是一种 PHPunit 语法。 Netbeans 在这方面没有任何作用。当 PHPunit 生成测试框架时,它使用这样的注解来编写测试函数。 Netbeans 只是启动 phpunit 并在其 GUI 中格式化输出。话虽如此,我确实同意使用断言是一个坏主意,因为除非您的测试文件未修改,否则您无法同步新注释。
    【解决方案2】:

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

    1. 从主菜单转到“文件”>“项目属性”
    2. 然后选择单击对话框窗口左侧垂直菜单上的“PHPUnit”选项卡
    3. 选择您将如何运行 PHPUnit 的选项,例如使用引导文件或 XML 或自定义套件
    4. 然后,从主菜单转到“运行”>“测试项目”
    5. 然后,系统会提示您选择测试文件的位置
    6. 然后,如果您还没有为 Netbeans 配置 PHPUnit shell 脚本或 bat 文件(在 Windows 上),您还会提示您在哪里?

    一旦像上面那样正确设置,每次需要运行测试用例时,从菜单中转到“运行”>“测试项目”

    【讨论】:

    • 对不起,如果我没有得到消息,但这不是我所要求的。我已经知道了。还是谢谢!
    • 抱歉,我以为您在 Netbeans 中设置时遇到问题。
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2016-12-24
    • 2016-12-12
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多