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,因为它是在声明时初始化的,并且静态导入意味着依赖。
有任何想法吗?先感谢您。
解决方案
文档说在 中可访问的字段@ClassRule
必须是public static
.
静态导入不是这样的。
您可以扩展ServerTestBase
:
public class ScratchSuite extends ServerTestBase { ... }
...或public static
重新声明:
public static Client myClient = client; //from static import
推荐阅读
- maven - 什么是临时排除的 Maven 依赖策略
- c++ - 读取多行文本直到空行
- iis - IIS Url Rewrite - 未定义属性“serverVariable”
- shader - 我想像在 Photoshop 中一样创建内部阴影着色器
- wordpress - 自定义帖子类型、自定义分类法的分页时出现 404 错误
- javascript - 将数组存储到 WordPress 数据库
- json - 如何将对象流式传输到压缩的 json?
- python - python中的不规则间距pcolor图
- ios - Xcode 没有足够的内存在 App Store 上分发我的应用程序?
- java - 我怎样才能让这个文本字段和下拉菜单工作来做我想做的事?