- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个测试类:MyTest1 和 MyTest2。他们都有相同的标题并测试相同的类,但他们测试该类的 2 个非常不同的方面(您可能会因此批评我,但让我们在这里不讨论):
@RunWith(LocalRobolectricTestRunner.class)
@Config(manifest = RobolectricTestData.AndroidManifestFileName)
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@PowerMockIgnore({ "org.mockito.*", "org.robolectric.*", "android.*" })
@PrepareForTest(MyStrangeClassWithStaticMethods.class)
@ParametersAreNonnullByDefault
public class MyTest1 extends MyBaseTest {
// This is to dinamically load PowerMock. We can't use PowerMockRunner because we already use
// RobolectricTestRunner and PowerMockRunner doesn't do robolectric's stuff.
@Rule
public final PowerMockRule rule = new PowerMockRule();
/**
* Tests set up.
*/
@Before
public final void setUp() throws Exception {
super.setUp();
}
public void testSomething() {
PowerMockito.mockStatic(MyStrangeClassWithStaticMethods.class);
// do some stuff
}
}
问题是我可以单独运行 MyTest1 并且所有测试都正常。我可以单独运行 MyTest2 并且所有测试都正常。但是当我运行 MyTest1 和 MyTest2 的所有测试(它们被编译到一个 jar 中)时 - 当我这样做时,只有第一次运行类(MyTest1)正常并且第二类失败。所有测试都崩溃并出现此异常:
org.mockito.exceptions.base.MockitoException:
ClassCastException occurred while creating the mockito proxy :
class to imposterize : 'com.my.project.MyStrangeClassWithStaticMethods', loaded by classloader : 'org.powermock.core.classloader.MockClassLoader@2617b42c'
imposterizing class : 'com.my.project.MyStrangeClassWithStaticMethods$$EnhancerByMockitoWithCGLIB$$41f09512', loaded by classloader : 'org.mockito.internal.creation.jmock.SearchingClassLoader@230eec25'
proxy instance class : 'com.my.project.MyStrangeClassWithStaticMethods$$EnhancerByMockitoWithCGLIB$$41f09512', loaded by classloader : 'org.mockito.internal.creation.jmock.SearchingClassLoader@23a0547b'
You might experience classloading issues, disabling the Objenesis cache *might* help (see MockitoConfiguration)
at org.powermock.api.mockito.internal.mockcreation.MockCreator.createMethodInvocationControl(MockCreator.java:109)
at org.powermock.api.mockito.internal.mockcreation.MockCreator.mock(MockCreator.java:57)
at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:70)
at com.my.project.MyTest2.testSomething(MyTest2.java:66666<no matter what line number>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.powermock.modules.junit4.rule.PowerMockStatement$1.run(PowerMockRule.java:52)
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.powermock.reflect.internal.WhiteboxImpl.performMethodInvocation(WhiteboxImpl.java:1873)
at org.powermock.reflect.internal.WhiteboxImpl.doInvokeMethod(WhiteboxImpl.java:773)
at org.powermock.reflect.internal.WhiteboxImpl.invokeMethod(WhiteboxImpl.java:638)
at org.powermock.reflect.Whitebox.invokeMethod(Whitebox.java:401)
at org.powermock.classloading.ClassloaderExecutor.execute(ClassloaderExecutor.java:98)
at org.powermock.classloading.ClassloaderExecutor.execute(ClassloaderExecutor.java:78)
at org.powermock.modules.junit4.rule.PowerMockStatement.evaluate(PowerMockRule.java:49)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:251)
at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:188)
at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:54)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:152)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.chromium.testing.local.GtestComputer$GtestSuiteRunner.run(GtestComputer.java:46)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:24)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
at org.chromium.testing.local.JunitTestMain.main(JunitTestMain.java:105)
Caused by: java.lang.ClassCastException: Cannot cast com.my.project.MyStrangeClassWithStaticMethods$$EnhancerByMockitoWithCGLIB$$41f09512 to com.my.project.MyStrangeClassWithStaticMethods
at java.lang.Class.cast(Class.java:3176)
at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:62)
... 47 more
这次崩溃迫使我将我的 2 个类合并到 1 个测试类中。这可能会阻止我在另一个测试类中模拟 MyStrangeClassWithStaticMethods.class 的可能性。我只能 mock 一次 :(
问题看起来像 ClassCastException exception when running Robolectric test with Power Mock on multiple files但有点不同,需要另一种解决方案。
Powermock 1.6.0
模拟 1.10.5
机器人电子 3.0
最佳答案
我找到了一个解决方案。堆栈跟踪说:
disabling the Objenesis cache might help (see MockitoConfiguration)
我做到了并且成功了。只需将此类添加到您的测试源位置:
package org.mockito.configuration;
public class MockitoConfiguration extends DefaultMockitoConfiguration {
@Override
public boolean enableClassCache() {
return false;
}
}
关于java - 使用模拟相同静态类的 Power Mock 运行 2 个 Roboelectic 测试类时出现 ClassCastException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828339/
Power Pivot、Power Query 和 Power BI 之间有什么区别?应该如何决定应该使用哪种工具以及何时使用。 最佳答案 电源查询 Power Query 是一种自助式 ETL(提取
在 Microsoft Power Automate 中,使用表达式 utcNow() 可以获得当前日期(和时间)。我正在尝试获取昨天的日期。我尝试了 dateadd(utcNow(), -1) 和类
也许这是一个非常简单的问题,但我试图弄清楚如何做到这一点,因为我有数百列以及手动完成的想法,将它们分成单独的查询然后 append 它们似乎并不非常实用。 我一直在处理一个查询,它以以下格式返回值:
我使用 Power Automate Desktop 创建了一个桌面流程。但我无法安排或让它自动运行。有什么办法吗? 我不希望使用云流和使用网关连接桌面流。我需要在我的台式机本身内自动运行桌面流程。有
我有一个数据集,它在 SQL Server 中进行转换,然后发送到 Power BI。该报告是根据营销人员的规范制定的,因此我无法表现出色(需要漂亮)。 是否有人设置了自动导出 PBI 报告(按特定列
所以我问了一个类似的问题,但我想我应该更普遍地提出这个问题,以获得尽可能多的想法。 我有 Power BI Pro。我的任务是为数百个收件人创建报告,每个报告都针对该特定用户进行个性化设置。 尽管每个
假设我正在将以下内容导入 PowerBI: Date | Quantity |---------------------|------------
我使用 Power Automate Desktop 创建了一个桌面流程。但我无法安排或让它自动运行。有什么办法吗? 我不希望使用云流和使用网关连接桌面流。我需要在我的台式机本身内自动运行桌面流程。有
我在表格中有一列,如下所示 当我使用 Replace Errors 将类型更改为 decimal(类型编号)并将其替换为 0.0 时,此列中的字符串给了我错误。 然后我旋转了专栏帖子,该专栏如下所示:
我对 Power BI 和 Power Automate 非常缺乏经验,如果这个问题有简单的答案(至少我找不到),我深表歉意。 我有一个 python 脚本,它从一些 excel 文件中获取数据,创建
将数据加载到模型后,我需要删除查询步骤。原因是隐藏消息来源,保护我们的专有技术,或者我只是对我所做的事情并不感到自豪;)。 但是当我删除 PQ 连接或更改“加载到”选项时,表格也会从数据模型中消失,并
我在表之间建立了 1 对多的关系,但是当我尝试在数据透视表中使用它时它失败了。我收到通常的黄色消息,说它可能缺乏关系。当我让它尝试检测一个时,它无法找到任何可能的东西,当我检查现有的时,我的就在那里并
我有一个带有标题列(在许多其他列中)的数据列表,并且我有一个 Power BI 参数,例如,值为“a、b、c”。我想要做的是遍历参数的值并删除以这些字符开头的所有行。 例如: Title a b c
有没有什么方法可以将 Power BI 报表部署到 Power BI 报表服务器,而无需手动复制这些文件,将它们上传到服务器,最后逐个报表更改每个报表的数据源连接信息,这在每个报表中都不实用客户网站。
我的数据源中有一个表,该表是从数据库加载的,其中包含带有日期的列。我需要从此列中获取最小值和最大值,并使用值作为参数在 Power BI 中创建另一个(计算的)表。请问我该怎么做?我尝试使用像 Sta
我正在用 Java 编写一个数学应用程序,它使用 Javascript 进行脚本/输入。我希望能够输入 x^2 并让 Java 在发送到 JavaScript 解析器之前将其替换为 pow(x,2)。
有人要求我将 Sharepoint 上的 Excel 在线电子表格中的数据提取到 Power BI 中以创建仪表板 - 没问题,对吧?好吧,“数据点”之一实际上是指示状态的单元格的填充颜色。我进行了一
在 Power Automate 中,我正在调用一个返回此 JSON 的 API: { "status":"200", "Suburbs":[ { "
我想从此页面(和类似页面)抓取数据:https://cereals.ahdb.org.uk/market-data-centre/historical-data/feed-ingredients.as
如何使用 PowerQuery 访问与 PowerQuery 关联的元数据?当将鼠标悬停在右侧“工作簿查询”列表中的查询上时,会显示此数据,显示“上次刷新”等字段。 应用程序:我有一个 Excel 工
我是一名优秀的程序员,十分优秀!