首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"java.lang.IllegalStateException:没有最后一个可用的模拟调用“只来自ant,在eclipse中运行良好。

"java.lang.IllegalStateException:没有最后一个可用的模拟调用“只来自ant,在eclipse中运行良好。
EN

Stack Overflow用户
提问于 2013-03-23 09:14:51
回答 1查看 2.6K关注 0票数 3

我正在使用EasyMock3.1/testNg-5.7/Powermock-easymock-1.5-full.代码非常简单,只需模拟一个公共静态方法即可。

代码语言:javascript
复制
import static org.powermock.api.easymock.PowerMock.createMock;

import static org.powermock.api.easymock.PowerMock.mockStatic;

import static org.powermock.api.easymock.PowerMock.replay;

import static org.powermock.api.easymock.PowerMock.verify;

import static org.easymock.EasyMock.expect;


@PrepareForTest( {MyStatic.class})

public class StaticTest extends PowerMockTestCase{

  @Test

  public void testStaticMethod()

  {

   mockStatic( MyStatic.class );

    expect( MyStatic.getString() ).andReturn( "good" );

    replay( MyStatic.class );

    MyStatic.getString();

    verify(MyStatic.class);

  }

}

我使用的是testng-eclipse插件,它在eclipse中工作得很好。但是当我尝试通过ant运行它时,我得到:

代码语言:javascript
复制
java.lang.IllegalStateException: no last call on a mock available
    at org.easymock.EasyMock.getControlForLastCall(EasyMock.java:520)
    at org.easymock.EasyMock.expect(EasyMock.java:498)

它在代码"expect( MyStatic.getString() ).andReturn( "good“);”

我的ant脚本是:

代码语言:javascript
复制
 <testng classpathref="test.runtime.classpath" outputDir="${report.absolute.path}/testngreport" workingDir="${test.module.basedir}">


          <!--<jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=y"/>-->


          <classfileset dir="${test.module.testoutput.dir}" includes="**/*.class"/>

        </testng>

非常感谢您的反馈,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-08-07 02:28:53

为了进行比较,当在ant中运行(通过junit)时,尝试使用@RunWith(PowerMockRunner.class)注释运行。@RunWith注释看起来是静态方法测试示例和the one from the powermock documentation之间的唯一区别。

这可能是一个testng错误。我试着在ant中重现你的失败,但对我来说一切都很好。下面是我使用的jar文件:

代码语言:javascript
复制
$ ls -1 lib/
cglib-nodep-2.2.3.jar
easymock-3.1.jar
javassist.jar
objenesis-1.4.jar
powermock-easymock-1.5.1-full.jar
testng-6.8.jar
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15582259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档