增加测试用例

This commit is contained in:
Mr.Po 2021-03-16 10:56:56 +08:00
parent d848e8cbbd
commit cbf16443dd

View File

@ -0,0 +1,42 @@
package cn.hutool.core.lang.loader;
import org.junit.Assert;
import org.junit.Test;
public class LazyFunLoaderTest {
static class BigObject {
private boolean isDestroy = false;
public void destroy() {
this.isDestroy = true;
}
}
@Test
public void test1() {
LazyFunLoader<BigObject> loader = new LazyFunLoader<>(BigObject::new);
Assert.assertNotNull(loader.get());
// 对于某些对象在程序关闭时需要进行销毁操作
loader.ifInitialized(BigObject::destroy);
Assert.assertTrue(loader.get().isDestroy);
}
@Test
public void test2() {
LazyFunLoader<BigObject> loader = new LazyFunLoader<>(BigObject::new);
// 若从未使用则可以避免不必要的初始化
loader.ifInitialized(it -> {
Assert.fail();
it.destroy();
});
}
}