gpt4 book ai didi

java - Junit:如何使用 Get Class Instance 进行断言

转载 作者:行者123 更新时间:2023-11-30 10:35:20 30 4
gpt4 key购买 nike

我有以下类 BridgeMaps:

public class BridgeMaps {
private static final BridgeMaps INSTANCE = new BridgeMaps();

private Map<String, String> docTypeMap;
private Map<String, String> docBaseMap;
private Map<String, String> tempFolderIdMap;
//....

//constructor for the class to initialize the Maps
private BridgeMaps(){
docTypeMap = new HashMap<String, String>();
docBaseMap = new HashMap<String, String>();
docBaseMap = new HashMap<String, String>();
//....rest of the code

}


//Get the class instance
//@return BridgeMaps - Returns the BridgeMaps Instance
public static final BridgeMaps get(){
return INSTANCE;
}
}

我将 Junit 测试用例编写为:

public class BridgeMapsTest {

private static BridgeMaps bridgeMaps;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
Constructor<BridgeMaps> b = BridgeMaps.class.getDeclaredConstructor(new Class[0]);
b.setAccessible(true);
bridgeMaps = b.newInstance(new Object[0]);
}

@Test
public void testGet() {
//("Not yet implemented");
}
}

但我不确定要断言什么:

assertWhat(bridgeMaps.get());

如何在 testGet() 方法中声明类的实例?

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

我建议使用 assertThat。

此断言适用于 Hamcrest 匹配器,例如 notNullValue() .

允许你像这样重写你的断言:

assertThat(BridgesMap.get(), notNullValue(BridgeMaps.class))

此代码断言调用该静态 get 方法将返回一个非空值。

换句话说:这个调用将触发构造函数,并运行它背后的所有代码。您可以放心,您的单例是“真实的”,而不是空的;分别在访问时导致异常。

关于java - Junit:如何使用 Get Class Instance 进行断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41250182/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com