【发布时间】:2020-02-08 07:02:12
【问题描述】:
我正在使用 EasyMock 编写测试用例。我的测试方法调用“returns verification.getVerification(paramter 1, paramter 2, parameter 3)”。当我从测试类调用我的测试方法时,它返回 null。
在下面分享我的代码sn-p:
//EntityField.java
private Class <? extends Entity> classtype;
private String paths;
Permission filter;
@Inject
private transient RestrictInterface restriction;
public EntityField(final Class <? extends Entity> classtype, final String
path, final Permission filterclass)
{
this.classtype = classtype;
this.paths = path;
filter = filterclass;
}
public Permission getBasePermission() //my test method
{
if(Active.class.isAssignableFrom(classtype))
{
filterclass=new
SimplePermission(Active.active_attribute,Operator.equals,Boolean.TRUE);
}
else if (NotActive.class.isAssignableFrom(classtype))
{
filterclass=new
SimplePermission("notactive",Operator.equals,Boolean.TRUE);
}
return restriction.getBasePermission(classtype,filterclass);
}
//Test.java
@Test
public void testgetBaseRestriction() {
//NiceMock
EntityField entityfieldobject = new EntityField (classtype, path,
filterclass);
//Mock Objects
RestrictInterface restriction = createNiceMock(RestrictInterface.class);
Permission filter = new
SimplePermission(Active.active_attribute,Operator.equals,Boolean.TRUE);
final Class = Active.class;
//expects
expect(restriction.getBaseRestriction(eq(classtype),eq(filterclass)))
.andStubReturn(filter);
//replay
replay(restriction);
Permission object = entityfieldobject.getBasePermission();
// here object returns null
verify(restriction);
}
我想测试我的测试类中是否设置了 filterclass 值。 如何在测试用例中避免这个空值。任何帮助将不胜感激。
谢谢
【问题讨论】:
-
方法不返回方法。他们返回其他方法调用返回的结果
-
发布完成
EntityField.java代码 -
似乎你想实际模拟
verification对象。 -
@MoritzPetersen 确实
-
@Stultuske 方法可能会返回 lambdas,这可能被视为“返回方法”,但这里当然不是这种情况。