静态导入如何为空

时间:2018-07-02 12:08:55

标签: junit4

由于它是在声明中初始化的,因此导入本身就暗含了依赖性。

我们有一个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为何可以为空,因为它是在声明时初始化的,并且静态导入暗示了依赖性。

??有什么想法吗?预先谢谢你。

1 个答案:

答案 0 :(得分:0)

文档说@ClassRule中可访问的字段必须为public static

静态导入不是这样。

您可以扩展ServerTestBase

public class ScratchSuite extends ServerTestBase { ... }

...或重新声明public static

public static Client myClient = client; //from static import