使用PowerMock和JAXB进行的测试无法读取所有xml字段

问题描述

xmlObject字段为null(不包含名称空间)-在此测试类中,Jaxb将其编组为xmlObject:

urlpatterns = [
    path('',IndexView.as_view(),name='index'),path('add-to-cart/<int:product_id>/',AddToCartView.as_view(),name='addtocart'),path('my-cart/',MyCartView.as_view(),name='mycart'),# no overlap with add-to-cart/ and my-cart/ ↓
    path('product/<slug:slug>/',ProductDetaiLView.as_view(),name='productdetail')
]

根据this stack

我试图缩小或扩展@RunWith(powermockrunner.class) @PowerMockIgnore({"com.sun.org.apache.xerces.*","javax.xml.*","org.xml.*","org.w3c.*","com.sun.org.apache.xalan.*" }) @PrepareForTest(SomeClass.class) public class ATest { ... XmlObject xmlObject = someMethodWhichUseJaxbToUnmarshalXml(); ... }

但我受苦

LinkageError:类的加载程序约束违反 com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl ...

IllegalAccessError:类 com.sun.org.apache.xerces.internal.parsers.XML11Configuration(在 未命名的模块@ 0x321ca237)无法访问类 jdk.xml.internal.JdkXmlUtils(在java.xml模块中),因为模块 java.xml不会导出jdk.xml.internal ...

IllegalAccessError:类javax.xml.parsers.FactoryFinder(未命名) 模块@ 0x388623ad)无法访问类 jdk.xml.internal.SecuritySupport(在java.xml模块中),因为模块 java.xml不导出

以上所有错误仅由@PowerMockIgnore进行了修复,其中包位于顶部,但是xml值无法正确读取。

无法触摸XmlObject。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)