Java 针对简单外观的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

试图为下面的facade设计一个JUnit测试——我知道这应该很简单,但我一直都是空白。有什么想法能让我走上正确的方向吗。这不需要太复杂,我只需要把它做好

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的想法是正确的。