TestNG学习-监听方法的使用

简介: TestNG学习-监听方法的使用

1. 监听方法的调用    

   当TestNG调用测试用例(以@Test注释)或配置(以@Before或@After注释中的任何一个注释)方法时,监听器IInvokedMethodListener都可以进行通知,可以通过以下接口实现监听方法的调用:

public interface IInvokedMethodListener extends ITestNGListener {
  void beforeInvocation(IInvokedMethod method, ITestResult testResult);
  void afterInvocation(IInvokedMethod method, ITestResult testResult);
}

   根据TestNG监听器的部分所述,将其声明为监听器使用。


2. 重写测试方法

   TestNG允许您重写并在可能的情况下,跳过测试方法的调用。例如需要使用特定的安全管理器来测试方法时。可以通过提供实现IHookable的监听器来实现。下面是一个JAAS实现的例子:

public class MyHook implements IHookable {
  public void run(final IHookCallBack icb, ITestResult testResult) {
    // Preferably initialized in a @Configuration method
    mySubject = authenticateWithJAAs();
    Subject.doAs(mySubject, new PrivilegedExceptionAction() {
      public Object run() {
        icb.callback(testResult);
      }
    };
  }
}

3. 更新suite和测试用例

    背景

   有时,可能只需要在运行时更改suite的xml文件中的suite或test标签,而不必更改suite文件的内容。

   TestNG允许在运行时通过监听器更改suite的xml文件中的suite或test标签。可以通过提供实现IAlterSuiteListener的监听器来实现此目的。

   以下示例显示suite的名称在运行时如何更改:

public class AlterSuiteNameListener implements IAlterSuiteListener {
    @Override
    public void alter(List<XmlSuite> suites) {
        XmlSuite suite = suites.get(0);
        suite.setName(getClass().getSimpleName());
    }
}

 只能通过以下两种方式之一添加监听器:

  • 通过suite的xml文件中的<listeners>标记。
  • 通过Service Loader

   注:不能使用@Listeners注解的方式添加。


相关文章
|
9月前
|
C++
【C++】bind绑定包装器全解(代码演示,例题演示)
【C++】bind绑定包装器全解(代码演示,例题演示)
|
数据可视化 Java
Java中的事件监听知识点&动作监听简单实现(含源码阅读)
监听分为三类:键盘监听、鼠标监听 和 动作监听,看到这些名词可能有点懵,监听是个啥,那么首先我们来理解一下绑定监听:当事件源(按钮)上发生了某个事件(单击),就执行某段代码(输出“您已点击按钮”)
417 0
Java中的事件监听知识点&动作监听简单实现(含源码阅读)
|
6月前
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
153 0
|
设计模式 缓存 Java
Spring监听器用法与原理详解(带ApplicationListener模型图)(1)
Spring监听器用法与原理详解(带ApplicationListener模型图)
1107 0
|
XML 监控 Java
Listener 监听器介绍以及代码演示
Listener 监听器介绍以及代码演示
149 0
|
设计模式 缓存 Java
Spring监听器用法与原理详解(带ApplicationListener模型图)(2)
Spring监听器用法与原理详解(带ApplicationListener模型图)
277 0
|
前端开发
前端学习案例2-bind的重写
前端学习案例2-bind的重写
72 0
前端学习案例2-bind的重写
|
前端开发
前端学习案例1-bind的重写
前端学习案例1-bind的重写
86 0
前端学习案例1-bind的重写
|
XML Java 关系型数据库
TestNG学习-参数的使用
TestNG学习-参数的使用
TestNG学习-参数的使用
|
Java
【Java】【学习】【监听器】Listener的学习的案例(窗体程序)
【Java】【学习】【监听器】Listener的学习的案例(窗体程序)
116 0
【Java】【学习】【监听器】Listener的学习的案例(窗体程序)

热门文章

最新文章