java - 使用自制的类库作为其他类文件中的函数

标签 java class selenium package

我是 Java 的新手,所以如果这是一个愚蠢的问题请原谅我,但是当我说我真的找不到可靠的答案时请相信我。

这就是我正在使用的: enter image description here

所以我正在测试一个程序,保持它的维护和更新的最简单方法是创建我自己的“按钮”库。库中的所有内容都是小函数,例如“enterValidCredentials”和“clickLoginButton”。

那么让我们来看看我的测试用例。在一个完美的世界中,我将能够:

public class progressCheck {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://mail.google.com/");
        enterValidCredentials;
        clickLoginButton;
    }       
}

enterValidCredentials 和 clickLoginButton 存在于我的类库中。我很清楚那不会像上面写的那样工作。从字面上看,执行此操作的正确方法是什么?

如果有帮助的话,我的 enterValidCredentials 类如下所示:

public class loginPageButtons {
private WebDriver driver;
Actions actions = new Actions(driver);

public class enterValidCredentials { // This class enters in a valid username and valid password on the login page.
    public void enterValidCredentials2() {
        driver.findElement(By.cssSelector("input[type=\"text\"]")).clear();
        driver.findElement(By.cssSelector("input[type=\"text\"]")).sendKeys("XXXXXXXX");
        driver.findElement(By.cssSelector("input[type=\"password\"]")).clear();
        driver.findElement(By.cssSelector("input[type=\"password\"]")).sendKeys("XXXXXXXX");
    }
}

我的所有其他功能都遵循相对相似的结构(当然,取决于它们的功能)。

最佳答案

您可以使用单元测试来检查类的单一功能。

创建单元测试最常用的库是 JUnit .

如果您使用 ide(如 IntelliJ 或 Eclipse)运行测试可以使用一个简单的命令来完成,就像运行 main 方法一样。

如果您需要创建对象的模拟,您可以使用像 Mockito 这样的库(但还有许多其他有效的替代方法)。

注意: mock 是一个对象,它与难以在测试环境中使用的复杂对象(例如数据库连接、文件处理程序、网络处理程序)具有相同的接口(interface).

这是一个例子,我试着想象你的代码和可能的测试。我假设 clickLoginButton 返回一个整数只是为了显示可能的断言语句。

例子:

@Test
public static void testCredentials() {
    WebDriver driver = new FirefoxDriver();
    driver.get("http://mail.google.com/");
    EnterValidCredentials enterValidCredentials = new EnterValidCredentials(); // Or create a mock if necessary
    // Set values if necessary
    int returnValue = enterValidCredentials.clickLoginButton();
    assertEquals(returnValue, 1);
}  

关于java - 使用自制的类库作为其他类文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32971782/

相关文章:

java - 忽略带有 Test 注释的方法的 PMD 规则

java - 使用 Selenium、Java 查找并单击元素

Java类声明解释

javascript - 如何使用 java selenium 将 sendKeys 用于 ckeditor 文本区域

java - Spring-Data-Neo4j:relationshipEntity 仅返回节点的 graphId。

java - 将网络驱动器上的源编译到本地驱动器上

c++ - 使用变量声明对象的名称

android - 使用搜索栏控制 Exoplayer 的音量

java - 如何根据 HTML 展开下拉列表后单击复选框

javascript - 如何设置 Protractor 配置以在 FireFox 上运行并启用 CORS