Java:强制方法的客户端在返回之前执行代码



我有一堆WebDriver配置文件(我们称之为x,y和z),我需要选择一个随机配置文件来执行某些操作。我们将操作称为 A、B 和 C。

在我的类WebDriverManager中,我定义了三种方法:doA()doB()doC()。每种方法都将选择一个随机配置文件,该配置文件a) 当前未使用,b)有资格执行给定操作。

如果client呼叫doA(), doB() or doC(),他们将获得有资格执行操作 A、B 或 C 的WebDriver配置文件。doA(), doB() or doC()还将所述配置文件的状态设置为不可用(通过 props 文件),以便配置文件不会返回用于不同的操作(如果从不同的线程调用,则返回相同的操作),直到它再次可用。

我的问题是,只有当客户端完成将所述配置文件用于其预期目的时,配置文件才会可用。

由于doA()等方法将通过许多客户端访问,因此如何强制doA()doB()doC()client在返回之前将配置文件的状态设置为可用WebDriver?如果将来某个时候我忘记将给定配置文件的状态更改为可用(在客户端中),它将永远保持不可用,这将导致很多问题。

那么,我如何保证无论调用doA()doB()doC()的方法在返回之前都将配置文件状态设置为 AVAILABLE?

附言

这是我在 SO 上发现的最接近的问题,但我相信这并不能解决我的问题,因为我无法控制实际的WebDriver类,我只是希望上述每个方法的客户端在返回之前执行某个操作。

AutoClosable也不起作用,因为我没有尝试关闭类的特定实例(我不控制类),我希望某个方法的客户端在完成之前执行特定的方法或代码。

从听起来像是定义它的方式来看,WebDriverManager的当前实例应该跟踪当前测试正在使用的配置文件。如果还没有,则必须编写此代码。在测试清理期间,调用类似WebDriverManager.SetProfileAvailable()的内容,将使用的配置文件设置回 AVAILABLE。

最新更新