我是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;}
}
答案 0 :(得分:3)
我从未在NetBeans中使用@assert
,但看起来它们只是告知测试用例生成器如何编写测试。最后,NetBeans为该类创建了一个类似于上面TestSession
的测试用例(尽管它将被称为SessionTest
)。
如果您使用@assert
来定义测试数据,请记住,每次更改测试数据时都需要重新生成测试,这将覆盖您在测试后对测试用例所做的任何更改。我建议手动编写测试用例,因为在编写测试会话时不能使用@assert
。它被设计为编写类似“给定参数X,Y和Z,返回值应为R”的测试。您无法使用它来测试方法的副作用。
答案 1 :(得分:1)
要在Netbeans中进行PHPUnit测试,请执行以下操作。
如上所述正确设置后,每次需要运行测试用例时,请转到“运行”>菜单中的“测试项目”