我有以下课程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()方法中断言类的实例?
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
我建议使用assertThat。
此断言适用于Hamcrest匹配器,如notNullValue()。
允许你像这样重写你的断言:
assertThat(BridgesMap.get(), notNullValue(BridgeMaps.class))
此代码断言调用静态get方法将返回非null值。
换句话说:此调用将触发ctor,并运行该背后的所有代码。你可以放心,你的单身是“真实的”,而不是空的;在访问时分别导致异常。
答案 1 :(得分:0)
使用assertSame(a,b)
断言两个对象引用同一个对象。
还要考虑只做assertSame(bridgeMaps.get(), bridgeMaps.get())
而不是那个反思性的pokery。