#php #netbeans #phpunit
#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 );
Не могли бы вы помочь мне понять, как выполнять тесты PHPUnit в Netbeans, преобразовав приведенный выше пример? Спасибо
Я не знаю, но будет ли правильно делать что-то подобное в 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;}
}
Ответ №1:
Я никогда не использовал @assert
NetBeans, но, похоже, они просто сообщают генератору тестовых примеров, как писать тесты. В конце NetBeans создает тестовый пример для класса, который будет выглядеть аналогично TestSession
приведенному выше (хотя он будет вызываться SessionTest
).
Если вы используете @assert
для определения своих тестовых данных, имейте в виду, что вам нужно будет повторно создавать тест каждый раз, когда вы их меняете, и это перезапишет все изменения, которые вы внесли в тестовый пример после этого. Я бы рекомендовал писать тестовые примеры вручную, поскольку вы не можете использовать @assert
их в процессе написания для тестирования сеанса. Он предназначен для написания тестов типа «При заданных параметрах X, Y и Z возвращаемое значение должно быть R.» Вы не можете использовать его для тестирования побочных эффектов ваших методов.
Комментарии:
1.
@assert
это синтаксис PHPUnit. Netbeans в этом не участвует. Когда PHPUnit создает скелет тестов, он использует такую аннотацию для написания тестовых функций. Netbeans просто запускает phpunit и форматирует вывод в своем графическом интерфейсе. При этом я согласен с тем, что использование утверждений — плохая идея, поскольку вы не можете синхронизировать новые аннотации, если ваши тестовые файлы не изменены.
Ответ №2:
Чтобы выполнить тестирование PHPUnit в Netbeans, выполните следующие действия.
- Перейдите в «Файл»> «Свойства проекта» из главного меню
- Затем выберите вкладку «PHPUnit» в вертикальном меню слева от диалогового окна
- Выберите вариант, как вы будете запускать PHPUnit, например, с помощью файла начальной загрузки или XML или пользовательских наборов
- Затем перейдите в «Выполнить»> «Тестовый проект» из главного меню
- Затем вам будет предложено выбрать, где находятся тестовые файлы
- Затем вам также будет предложено указать, где находится ваш сценарий оболочки PHPUnit или файл bat (в Windows) на вашем компьютере, если вы не настроили его для Netbeans
После правильной настройки, как указано выше, каждый раз, когда вам нужно запускать тестовые примеры, перейдите в меню «Выполнить»> «Тестовый проект»
Комментарии:
1. Извините, если я не понял сообщение, но это не то, о чем я прошу. Я уже знаю это. В любом случае спасибо!
2. извините, я подумал, что у вас возникли проблемы с настройкой в Netbeans.