1

我正在处理使用 Apache XMLBeans 的应用程序(扩展 org.apache.xmlbeans.XmlObject 的 XML 结构元素的接口,扩展 org.apache.xmlbeans.impl.values.XmlComplexContentImpl 的那些接口的实现)

我得到了以下功能:

  • 将 XML 对象传递给带有一些数据的方法
  • 基于此数据,为此 XML 对象生成子内容
    • 使用 XML 对象的 addFoo() 添加元素等

现在我想对此功能进行测试,但我不确定让这个 XML 对象进行测试的最佳方法是什么(我希望存根/模拟对象保持子树状态以便于测试) . 一些选项:

  • 我尝试实例化这些 FooImpl 实现对象,但它们需要引用 org.apache.xmlbeans.SchemaType sType
    • 有没有办法实例化这些?
    • 添加某些内容时,提供 null / mocked SchemaType 最终会导致 NPE
  • 使用少数需要的方法生成存根类会起作用,但最终会生成许多(> 100)个方法
  • 使用 Mockito 可以正常工作,但是要轻松测试 xml 树结构状态,我需要使用 doAnswer() 等

一些想法?

兄弟,图科

4

2 回答 2

3

发现自己的答案很简单:xmlbeans 接口具有用于实例化 bean 的工厂类,例如:

Address.Factory.newInstance()
于 2012-07-31T10:07:59.887 回答
2

我知道这不是您正在寻找的答案,但无论如何它都会出现:

不要模拟你无法控制的类型

参考:

给你一个问题:你想测试什么?Apache XML bean 是否按预期工作?或者您正在编写 XML 工具?

于 2012-07-31T10:07:51.570 回答