单元测试Dropbox

时间:2016-01-27 12:16:49

标签: angularjs unit-testing karma-jasmine

我正在尝试使用与Dropbox api交互的Karma Jasmine创建单元测试。

以下是测试。它编译指令,然后单击它。这将检查文件选择器窗口是否打开。以这种方式检查窗口开放适用于其他测试,但在此实例中它失败,因为@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) @Stateless public class Bean { final static Logger LOGGER = LoggerFactory.getLogger(Bean.class); @PersistenceContext(unitName = "MYUNIT") EntityManager em; public MyObject create(){ MyObject obj = new MyObject(); obj.businessKey = "some string"; em.persist(obj); LOGGER.debug("MyObject.id: {}", obj.id); // eg. 100 return obj; } public void update(MyObject obj){ obj.stuff = "some stuff"; MyObject merged = em.merge(obj); LOGGER.debug("obj.id: {}", obj.id); // still 100 LOGGER.debug("merged.id: {}", merged.id); // new id: 101! } public void findAndUpdate(MyObject obj){ obj.stuff = "some stuff"; em.find(MyObject.class, obj.id); // doing nothing with the returned MyObject MyObject merged = em.merge(obj); LOGGER.debug("obj.id: {}", obj.id); // still 100 LOGGER.debug("merged.id: {}", merged.id); // still 100! } } 。这是因为它不在测试中。该文件通过https://www.dropbox.com/static/api/2/dropins.js直接托管Dropbox,所以我似乎无法注入...所以问题是,在这种情况下如何使ReferenceError: Can't find variable: Dropbox可用?

Dropbox

提前致谢

1 个答案:

答案 0 :(得分:1)

你的做法是错误的。您正在尝试单击测试按钮单击。您没有单击测试按钮单击,您单元测试控制器/服务/指令代码。

要测试按钮,请使用量角器。这是E2E测试(端到端)。