0

尝试为以下外观提出 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");
        }
    }
}
4

1 回答 1

0

正如其他人所说,您可以编写一个首先存储 some 的单元测试Items,然后在同一个测试中检索Items并确保您返回的内容与您最初存储的内容“等效”。

例如(如果我可以大胆猜测一下),在我看来,您的Itemmgr课程可能会被扩展为包括易失性和持久性版本(可能一个版本在 RAM 中,可能一个在磁盘上)。您的测试可以确保item1 == item2在 RAM 常驻版本中item1 != item2 && item1.equals(item2)返回 true,但在持久测试中返回 true,以确保 item2 已序列化或从某处复制,而不仅仅是从Map某种类型的 a 中检索原始. 只是一些想法。

于 2012-06-12T22:40:36.887 回答