由于它是在声明中初始化的,因此导入本身就暗含了依赖性。
我们有一个jUnit父测试类,例如...
public class ServerTestBase extends TestBase {
public static final Client client = new Client();
...
还有一个带有静态导入客户端的套件以及使用此客户端的@ClassRule中的一些初始化代码:
import static jwstest.test.ServerTestBase.client;
@RunWith(Suite.class)
@Suite.SuiteClasses({BunchOfSuites.class})
public class ScratchSuite {
@ClassRule
public static final ExternalResource testRule = new ExternalResource() {
@Override
protected void before() throws Throwable {
response = client.call(someService, HttpVerbs.GET).getResponse();
所以,再次,我不明白,地狱客户端中的null为何可以为空,因为它是在声明时初始化的,并且静态导入暗示了依赖性。
??有什么想法吗?预先谢谢你。
答案 0 :(得分:0)
文档说@ClassRule
中可访问的字段必须为public static
。
静态导入不是这样。
您可以扩展ServerTestBase
:
public class ScratchSuite extends ServerTestBase { ... }
...或重新声明public static
:
public static Client myClient = client; //from static import