SWTbot 是一個 Eclipse plugin 可用來自動測試 Eclipse plugin。
Javadoc
幾點注意
以下是簡單的測試案例,其步驟是移動游標到指定位置,並觸發content assist功能,並檢查proposal內容是否如我們預期。
Javadoc
幾點注意
- test case運作時必須加上 plug-ins:
org.eclipse.core.net
org.eclipse.ui.ide.application - 執行時可能需要加上JVM參數 -XX:MaxPermSize=512m ,在我的環境下總是會遇到 outofmemoryerror: PermGen Space
- 模擬按鍵 :http://wiki.eclipse.org/SWTBot/Keyboard_Layouts
以下是簡單的測試案例,其步驟是移動游標到指定位置,並觸發content assist功能,並檢查proposal內容是否如我們預期。
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor; import org.eclipse.swtbot.eclipse.gef.finder.SWTBotGefTestCase; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; import org.eclipse.swtbot.swt.finder.utils.Position; import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(SWTBotJunit4ClassRunner.class) public class Basic extends SWTBotGefTestCase { private static SWTWorkbenchBot benchBot; @BeforeClass public static void beforeClass() throws Exception { SWTBotPreferences.TIMEOUT = 10000; benchBot = new SWTWorkbenchBot(); benchBot.viewByTitle("Welcome").close(); } @Test public void test() { // Generated code goes there benchBot.menu("Package Explorer").click(); benchBot.tree().getTreeItem("WtpTest").expand(); benchBot.tree().getTreeItem("WtpTest").getNode("WebContent").expand(); benchBot.tree().getTreeItem("WtpTest").getNode("WebContent").expand(); SWTBotTreeItem myFolder = benchBot.tree().getTreeItem("WtpTest").getNode("WebContent").getNode("myfolder"); myFolder .expand(); myFolder .getNode("basic.jsp").doubleClick(); SWTBotEclipseEditor editor = benchBot.editorByTitle("basic.jsp").toTextEditor(); editor.setFocus(); editor.navigateTo(5, 12); List proposals = editor.getAutoCompleteProposals(""); //assert proposals } }
留言