@Before注释方法期间的Mockito代码解决方案
我是使用 Mockito 框架(和行为/测试驱动开发)并使用 帮助我编写一些代码;
我正在为 xml 编写自己的 Java 库来创建图形内容, 我首先尝试验证一些行为: (MockitoAnnotations.initMocks(Class)
用于 BaseTestClass
):
public class GeneralXml extends BaseTestClass {
private static final String TAG = "General XML";
@Mock(name="xml") private XmlGraphics mockXML;
@Before
public void setUp() throws Exception{
//stub method parseDimension
when(mockXML.parseDimension(anyString()))
.thenReturn(500);
// stub method parsePosition: 500 X 500 X 500 is an
// arbitrary dimension of window
when(mockXML.parsePosition(anyString()))
.thenReturn(
new Random().nextFloat() * mockXML.parseDimension(Xml.WIDTH),
new Random().nextFloat() * mockXML.parseDimension(Xml.HEIGHT),
new Random().nextFloat() * mockXML.parseDimension(Xml.DEPHT));
// Now Colors must have betwwen 0 and 255
// (RGB color)
when(mockXML.parseColorComponent(anyString()))
.thenReturn(
new Random().nextInt(256),
new Random().nextInt(256),
new Random().nextInt(256));
}
但是我在所有后续验证中收到错误,例如:
@Test
public void mockPosition() {
Log.d(TAG, "mock", "x = "+mockXML.parsePosition(Xml.X));
Log.d(TAG, "mock", "y = "+mockXML.parsePosition(Xml.Y));
Log.d(TAG, "mock", "z = "+mockXML.parsePosition(Xml.Z));
verify(mockXML, times(3)).parsePosition(anyString());
}
我认为我的错误在于:
when(mockXML.parsePosition(anyString()))
.thenReturn(
new Random().nextFloat() * mockXML.parseDimension(Xml.WIDTH),
new Random().nextFloat() * mockXML.parseDimension(Xml.HEIGHT),
new Random().nextFloat() * mockXML.parseDimension(Xml.DEPHT));
这不是有效代码?或者我误解了什么? 感谢您的帮助
i'm new on using Mockito framework (and Behavior/Test Driven Development) and using
to help me code some things;
I´m coding my own Java library for xml to create graphic things and
i tried first verify some behaviours:
(MockitoAnnotations.initMocks(Class)
is used in BaseTestClass
):
public class GeneralXml extends BaseTestClass {
private static final String TAG = "General XML";
@Mock(name="xml") private XmlGraphics mockXML;
@Before
public void setUp() throws Exception{
//stub method parseDimension
when(mockXML.parseDimension(anyString()))
.thenReturn(500);
// stub method parsePosition: 500 X 500 X 500 is an
// arbitrary dimension of window
when(mockXML.parsePosition(anyString()))
.thenReturn(
new Random().nextFloat() * mockXML.parseDimension(Xml.WIDTH),
new Random().nextFloat() * mockXML.parseDimension(Xml.HEIGHT),
new Random().nextFloat() * mockXML.parseDimension(Xml.DEPHT));
// Now Colors must have betwwen 0 and 255
// (RGB color)
when(mockXML.parseColorComponent(anyString()))
.thenReturn(
new Random().nextInt(256),
new Random().nextInt(256),
new Random().nextInt(256));
}
But I receive error in all subsequent verifications, like:
@Test
public void mockPosition() {
Log.d(TAG, "mock", "x = "+mockXML.parsePosition(Xml.X));
Log.d(TAG, "mock", "y = "+mockXML.parsePosition(Xml.Y));
Log.d(TAG, "mock", "z = "+mockXML.parsePosition(Xml.Z));
verify(mockXML, times(3)).parsePosition(anyString());
}
I think that my error is in:
when(mockXML.parsePosition(anyString()))
.thenReturn(
new Random().nextFloat() * mockXML.parseDimension(Xml.WIDTH),
new Random().nextFloat() * mockXML.parseDimension(Xml.HEIGHT),
new Random().nextFloat() * mockXML.parseDimension(Xml.DEPHT));
This is not a valid code? or I misunderstanding something?
Thanks for any help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试将其添加为 setUp() 函数中的第一行:
Try adding this as the first line in your setUp() function: