java - 如何在其他测试中重用(包含)Junit 测试 block

标签 java selenium-webdriver junit4

我对 JAVA 世界相当陌生 - 来自 ColdFusion 背景 - 并且一直在学习 Java,因为我正在学习 Selenium WebDriver/JUnit。我编写了几个测试类来测试遵循类似结构的管理功能。

public class myclass{

public static WebDriver driver;

@BeforeClass
public static void startDriver(){
   driver = new FirefoxDriver();
   driver.get("some url");
}

@Test
public void myLogin(){

    some login code

}

@Test
public void somefunction() {

    other admin function to test

}

我的问题是这样的 - 因为我所有的测试都需要用户登录 - 我最终不得不一遍又一遍地重复使用“mylogin”测试代码。我如何编写测试来简单地“包含”(如 ColdFusion 中的“cfinclude”标签)登录代码,以便如果对登录页面功能进行更改 - 我只需在一处更改它。

最佳答案

Java 没有像 ColdFusion 或 C 那样的词法 include 语句。这是设计使然,因为在编译之前粘贴源代码是在模块之间共享代码的一种非常不干净的方式。

但是还有很多其他方法可以解决这个问题。这里有两个:

  1. 创建您自己的库,将常用功能封装在方法中,并在测试中使用该库
  2. 添加setUp and tearDown methods为您的测试类(class)。这些方法在每个测试方法之前和之后执行。请注意,测试类可以相互继承。因此,当您有很多具有相同 setUptearDown 方法的测试类时,您可以让它们扩展一个公共(public)基类,并在基类中实现这些方法一次。<

关于java - 如何在其他测试中重用(包含)Junit 测试 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878873/

相关文章:

java - 使用 Java DOM 获取 XML 文本值

java - 如何将类作为 Java 函数中的参数发送?

java - JUnit 测试用例获取数据库连接以及 play 框架、spring jdbctemplate 的问题?

selenium - WebDriver 中的 JUnit 格式与 WebDriver 支持

java - 这段代码如何能够从接口(interface)中实例化一个新对象?

java - 如何在 Maven 中导入 Wildfly 依赖项

c# - 如何在 webdriver.quit() 之后停止运行 Selenium 测试?

spring - 模拟 SecurityContextHolder/Authentication 总是返回 null

java - 替代 String.join 来连接

node.js - Docker:如何使用 selenium 服务器进行 nightwatchJS 测试?