2007-08-20
easymock求助
现在我要对TDDForInital类进行单体测试
代码如下:
public class TDDForInital {
public String returnStr(String str) {
if (null == str || str.length() < 3) {
return "";
}
return str.replaceAll(",", "-") + new A().a();
}
}
现在我想用easymock弄掉new A().a()方法
测试代码如下:
public class TestTDDForInital extends TestCase {
public void testReturnStr() {
A control = EasyMock.createMock(A.class);
control.a();
EasyMock.expectLastCall().andReturn("6");
EasyMock.replay(control);
TDDForInital t = new TDDForInital();
assertEquals("2006-03-036", t.returnStr("2006,03,03"));
EasyMock.verify(control);
}
}
为什么测试不通过啊?现象表明new A().a()方法根本没有被mock掉。
junit.framework.ComparisonFailure: expected:<2006-03-03[6]> but was:<2006-03-03[]>
at junit.framework.Assert.assertEquals(Assert.java:81)
at junit.framework.Assert.assertEquals(Assert.java:87)
at test_bj.TestTDDForInital.testReturnStr(TestTDDForInital.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
代码如下:
public class TDDForInital {
public String returnStr(String str) {
if (null == str || str.length() < 3) {
return "";
}
return str.replaceAll(",", "-") + new A().a();
}
}
现在我想用easymock弄掉new A().a()方法
测试代码如下:
public class TestTDDForInital extends TestCase {
public void testReturnStr() {
A control = EasyMock.createMock(A.class);
control.a();
EasyMock.expectLastCall().andReturn("6");
EasyMock.replay(control);
TDDForInital t = new TDDForInital();
assertEquals("2006-03-036", t.returnStr("2006,03,03"));
EasyMock.verify(control);
}
}
为什么测试不通过啊?现象表明new A().a()方法根本没有被mock掉。
junit.framework.ComparisonFailure: expected:<2006-03-03[6]> but was:<2006-03-03[]>
at junit.framework.Assert.assertEquals(Assert.java:81)
at junit.framework.Assert.assertEquals(Assert.java:87)
at test_bj.TestTDDForInital.testReturnStr(TestTDDForInital.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
评论
wyseahl
2007-08-20
应该把你的Class A Mock以后set进TDDForInital中的returnStr方法里,而不是在returnStr方法里new 一个Class A
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 4619 次
- 性别:


- 详细资料
搜索本博客
我的相册
13
共 1 张
共 1 张
最近加入圈子
最新评论
-
web开发中关于TDD的一些 ...
我的方式是写一个 MockHttpServletRequest 和 MockHt ...
-- by yiding_he -
web开发中关于TDD的一些 ...
可以看下mock吧。可以模拟一个web container。
-- by qujingbo -
easymock求助
应该把你的Class A Mock以后set进TDDForInital中的ret ...
-- by wyseahl -
web开发中关于TDD的一些 ...
如果用webwork或struts2,request和session就是Hash ...
-- by dunsword -
easymock扩展包里的someth ...
下载了easymock的java文件,结果编译不过,需要这么多的包,谁帮忙解决一 ...
-- by yz_beijing






评论排行榜