Java 针对简单外观的JUnit测试
试图为下面的facade设计一个JUnit测试——我知道这应该很简单,但我一直都是空白。有什么想法能让我走上正确的方向吗。这不需要太复杂,我只需要把它做好Java 针对简单外观的JUnit测试,java,junit,Java,Junit,试图为下面的facade设计一个JUnit测试——我知道这应该很简单,但我一直都是空白。有什么想法能让我走上正确的方向吗。这不需要太复杂,我只需要把它做好 package business; import domain.Items; import services.exceptions.ItemNotFoundException; import services.itemservice.IItemsService; public class Itemmgr { @SuppressW
package business;
import domain.Items;
import services.exceptions.ItemNotFoundException;
import services.itemservice.IItemsService;
public class Itemmgr {
@SuppressWarnings("static-access")
public void store(Items item) {
Factory factory = Factory.getInstance(IItemsService.NAME);
IItemsService storeItem = (IItemsService)factory.getInstance(IItemsService.NAME);
storeItem.storeItem(item);
}
public void get(Items item) throws ClassNotFoundException, ItemNotFoundException {
Factory factory = Factory.getInstance(IItemsService.NAME);
@SuppressWarnings("static-access")
IItemsService getItem = (IItemsService)factory.getInstance(IItemsService.NAME);
try {
getItem.getItems("pens", 15, "red", "gel");
} catch (ClassNotFoundException | ItemNotFoundException e) {
e.printStackTrace();
System.out.println("Error - Class or Item Not Found");
}
}
}
正如其他人所说,您可以编写一个单元测试,首先存储一些项,然后在同一个测试中检索这些项,并确保返回的内容与最初存储的内容相同
例如,如果我可以大胆猜测一下,我觉得您的Itemmgr类可能会扩展到包括易失性和持久性版本,可能一个版本在RAM中,可能一个在磁盘上。您的测试可以确保item1==item2在RAM驻留版本中返回true,但是item1!=item2&&item1.equalsitem2在持久性测试中返回true,以确保item2是从某处序列化或复制的,而不仅仅是从某种映射中检索原始项。只是一些想法。你想测试什么?要查看是否所有内容都正确存储?是的-只是一个基本的功能测试存储几个项目,然后尝试获取它们,并查看获取的项目是否与存储的项目匹配。除非您提供更多关于要检查的内容的详细信息,否则我真的不能更具体。如果您希望编写一个真正的单元测试,您可能会希望为数据库访问代码创建模拟。我爱你。但是,如果您想编写集成测试,@Hans的想法是正确的。