我有一个方法 –
某些类(A类)中的getSomethingAmount()我想测试.这个
getSomethingAmount()方法逻辑依赖于Set bSet,即
在A类初始化中传递给构造函数.例如,如果
当getSomethingAmount()必须时,使用Status.OK设置bSet包含2个对象
返回2.如何正确验证此条件
Mockito?
现在我将2个B类类型的对象存根,将它们放入bSet然后断言
使用JUnit断言得到getSomethingAmount()方法 – 它有效,
但它看起来不像“真正的”Mockito方式.
最佳答案 根据您对预期行为的描述,听起来非常可靠地对方法进行单元测试.通过“真正的Mockito方式”,我想你想要的是:
Set mockBSet = mock(Set.class);
stub(mockBSet.size()).toReturn(2);
A testObjectA = new A(mockBSet);
Assert.assertEquals(testObjectA.getSomethingAmount(), 2);
这是假设,Set和测试对象的初始化没有任何副作用,您希望测试考虑到这些副作用. (例如,总是添加一些默认的“somethings”.)在这种情况下,你也可以省略stubing并断言测试中的方法返回一个等于set的大小的值.