2 回答
TA贡献1848条经验 获得超10个赞
您可以编写测试来检查您的功能,我假设该功能不是静态的。如果您想让它成为静态,那么您只需删除这两行
@InjectMocks
ChangerImpl changer;
代替“转换器”,您可以调用相应的实现类。希望这可以帮助。
@RunWith(MockitoJUnitRunner.class)
public class TestSampleTest {
@InjectMocks
ChangerImpl changer;
@Test(expected = NullPointerException.class)
public void test1(){
GroupProvider currentGroupAdm = mock(GroupProvider.class);
doReturn(null).when(currentGroupAdm).getDocs();
GroupProvider groupAdm = mock(GroupProvider.class);
oReturn("sample2").when(groupAdm).getDocs();
changer.hasDocsChangedRequired(currentGroupAdm, groupAdm);
}
@Test
public void test2(){
GroupProvider currentGroupAdm = mock(GroupProvider.class);
doReturn("sample1").when(currentGroupAdm).getDocs();
GroupProvider groupAdm = mock(GroupProvider.class);
doReturn("sample2").when(groupAdm).getDocs();
Assert.assertThat(changer.hasDocsChangedRequired(currentGroupAdm, groupAdm), is(true));
}
@Test
public void test3(){
GroupProvider currentGroupAdm = mock(GroupProvider.class);
doReturn("sample1").when(currentGroupAdm).getDocs();
GroupProvider groupAdm = mock(GroupProvider.class);
doReturn("sample1").when(groupAdm).getDocs();
Assert.assertThat(changer.hasDocsChangedRequired(currentGroupAdm, groupAdm), is(false));
}
}
TA贡献1821条经验 获得超4个赞
你的方法的输出
boolean hasDocsChangedRequired (GroupProvider currentGroupAdm, GroupProvider groupAdm) {
return !currentGroupAdm.getDocs().equals(groupAdm.getDocs());
}
完全取决于您的两个输入对象。
换句话说:您只需要提供输入对象,这些对象可以为特定测试提供您想要提供的内容。意思是:您可能想要编写一个测试,其中currentGroupAdm.getDocs()给出的结果等于groupAdm.getDocs(),并且两个调用给出的结果不相等。
理想情况下,您不需要在这里模拟任何内容。
添加回答
举报