2

I couldnt able to mock the protected varibale defined in the superclass.i could able to mock the protected method in superclass but couldnt to mock the protected variable in to the subclass ,wherein am writing the testcase for subclass,Please if anybody out there has any soluton for it .please reply.

Thanks Shashi

4

2 回答 2

4

您可以使用该Deencapsulation.setField方法执行此操作。例如:

@Test public void staticVarOverride() {
    MyClass myClass = new MyClass();
    Deencapsulation.setField(MyClass.class, "myStatic", 2);
    // Assertions, verifications go here.
}

这会将静态变量的值设置myStatic为 2。请注意,虽然这适用于静态,但不适用于静态决赛。AFAIK 没有办法覆盖静态决赛。

于 2010-07-07T23:06:02.590 回答
1

所有的模拟工具都只模拟方法。

JMockit 还具有实用方法,这些方法提供对给定测试中不可访问的字段、方法和构造函数的访问。它们可直接用于 和 的子mockit.Expectationsmockit.Verificationsmockit.Deencapsulation静态类中也公开了相同的方法。

于 2009-06-20T01:17:38.607 回答