0
因此,目前我有一个春季单元测试应用程序。它需要我从外部认证来源获取会话cookie。问题在于,这个身份验证过程相当昂贵并且非常耗时,而且我正尝试创建一个结构,其中我通过任何子类进行一次身份验证,并且创建任何后续子类,它将重新使用此会话cookie而不会触及身份验证再次处理。什么是更好地实现共享变量的子类
我现在的问题是,每次创建另一个子类时,静态cookie都是空的。我一直在阅读使用静态作为一个全局变量是一个坏主意,但我想不到另一种方式来做到这一点,因为Spring框架在运行时设置的东西,以及如何设置cookie,以便所有其他类可以用它。
另一条信息。该变量正在使用,但在运行时可以更改。它并不是一个单独的用户登录并全线使用。但更像是一个Sub1会调用登录,我们有一个cookie。然后多个测试将使用该登录,直到SubX进入并说,我使用不同的凭据,所以我需要登录为别的东西。并重复。
这里是我的代码概要:
public class Parent implements InitializingBean {
protected static String BASE_URL;
public static Cookie cookie;
... All default InitializingBean methods ...
afterPropertiesSet() {
cookie = // login process returns a cookie
}
}
public class Sub1 extends Parent {
@resource public String baseURL;
@PostConstruct
public void init() {
// set parents with my baseURL;
BASE_URL = baseURL;
}
public void doSomething() {
// Do something with cookie, because it should have been set by parent class
}
}
public class Sub2 extends Parent {
@resource public String baseURL;
@PostConstruct
public void init() {
// set parents with my baseURL;
BASE_URL = baseURL;
}
public void doSomethingElse() {
// Do something with cookie, because it should have been set by parent class
}
}
Sub1和Sub2是否只为访问Cookie而扩展Parent?或者他们也获得其他功能? – jeff
它还继承了许多其他功能,它不仅仅是Sub1或Sub2,而且更像Sub1,喜欢100+,因为它是一组测试。 – Churk
Sub1,Sub2,...以外的其他国家是否有cookie? – jeff