java - 如何使注入的 Mocks 等于 Null?
问题描述
我有一个看起来像这样的类:
public class Foo {
SomeObj dummy;
...
public Bar makeBar(){
if(dummy == null) {
...do stuff
}
return new Bar(dummy);
}
}
我正在尝试对 if 语句的内容进行单元测试,以确保我的代码正在做它需要做的事情。
现在,我的单元测试看起来像这样:
public class FooTest {
@InjectMocks
Foo foo;
@Mock
SomeObj dummy;
@Before
public void setUp() throws Exception
{
foo = new Foo();
MockitoAnnotations.initMocks(this);
}
...
@Test
public void testMakeBar()
{
when(dummy.equals(null)).thenReturn(true);
...
foo.makeBar();
}
}
当然,这不起作用,这就是我在这里的原因。简而言之,我如何模拟==
操作员?
旁注:对不起,如果这是一个愚蠢的问题或一个简单的解决方案。当试图用谷歌搜索时,我得到了很多“注入的模拟是空的”,这实际上与我的问题相反。
解决方案
我怀疑你想多了。只需停止模拟dummy
,或停止向 注入模拟Foo
,您将获得一个Foo
带有 a 的实例null
dummy
(因为它从未被初始化)。