gpt4 book ai didi

java - 在 JUnit4 中使用@Override

转载 作者:行者123 更新时间:2023-11-30 11:54:41 25 4
gpt4 key购买 nike

我正在使用 Selenium RC 和 JUnit 编写测试。如果 @Test 失败,我想截屏,但我想使用从 Test 类传递的特定屏幕截图名称。

目前我有:

@Rule  
public ScreenshotRule email = new ScreenshotRule();

@Test
public void testLogin() throws InterruptedException {
MyTest someTest = new MyTest(selenium);
someTest.someMethod (); // if anything assert fails in this method, i want to take a shot and call it a name which i will pull from the MyTest class.
}

这是 Screenshot 类:

public class ScreenshotRule extends TestWatchman {  
@Override
public void failed(Throwable e, FrameworkMethod method) {
System.out.println(method.getName() + " failed");
// At this point I wish to take a screenshot and call
}
}

那么如何将 String arg 从 MyTest 类传递到 Screenshot 类?

最佳答案

TestWatchman 签名不允许您传递任何附加信息,因此您必须使用现有信息。

例如,FrameworkMethod 类具有获取单元测试的 java.lang.reflect.Method 对象的方法,因此您可以使用该 Method 对象的名称作为您的屏幕截图。这不是您想要的,但聊胜于无。

您也可以在方法上调用getDeclaringClass(),获取代表测试类的Class,但您不会能够获取那个类的实例,这会很有用。

附言我不确定 @Override 与您的问题有什么关系。它有何相关性?

关于java - 在 JUnit4 中使用@Override,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com