NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Я не использовал его лично, но , SwingUnit выглядит довольно хорошим. Можно использовать его с jUnit, и это не основано "на местоположении компонентов" (т.е. координаты X и Y).
единственная вещь можно иметь отношение к разработчику NetBeans GUI, определенные уникальные имена для компонентов.
Я использую java.awt.Robot
. Не хорошо, не легок, но работает каждый раз.
Профессионалы:
Недостатки:
Теперь, если бы у Вас есть бюджет, я пошел бы для LoadRunner. Лучше всего в классе.
(Раскрытие: отношения к компании, которая владеет LR, но я работал с LR перед отношениями)
Я в настоящее время использую ФЕСТИВАЛЬ . Это работает с JUnit и также сделает снимки экрана проваленных тестов.
Это имеет методы поиска компонента по умолчанию, которые ищут название протестированного компонента (который должен быть установлен вручную), но можно также генерировать тестеры для данного компонента путем передачи его компонент.
Мы используем СКОРОСТРЕЛЬНЫЙ Тест и вполне удовлетворены.
You can try to use Cucumber and Swinger for writing functional acceptance tests in plain english for Swing GUI applications. Swinger uses Netbeans' Jemmy library under the hood to drive the app.
Cucumber allows you to write tests like this:
Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"
Take a look at this Swinger video demo to see it in action.
Мы рассматриваем jemmy для автоматизации некоторых тестов GUI. Выглядит многообещающе.