在JMockit中多次重用期望阻止

时间:2015-05-01 05:44:52

标签: java junit liferay jmockit

我正在为liferay门户编写测试用例,我想在其中模拟ActionRequest,ThemeDisplay类对象。我试过在每种测试方法中写出期望。

现在我想通过创建一个BaseTest类来概括这个方法,该类为我提供了每个方法所需的所有期望,这样我就不必在所有测试类中再次编写它。

对于我在@Before方法中写下期望的一个课程。我怎样才能在不同的班级中使用它?

例如,我想在几个类中执行以下操作:

@Before
public void setUp() {

    // All expectations which are required by each test methods
    new Expectations() {{
        themeDisplay.getPermissionChecker();
        returns(permissionChecker);
        actionRequest.getParameter("userId");
        returns("111");
        actionRequest.getParameter("userName");
        returns("User1");
    }};

}

还有一种方法可以提供,每当我致电actionRequest.getParameter()时,它可能会返回我提供的具体值吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

通常,您希望创建名为 ExpectationsVerifications的子类,以便从多个测试类中重用。可以在documentation

中找到示例

请注意,在实例化所述子类时,必须传入模拟实例。

然而,像getPermissionChecker()这样的方法通常不需要明确记录,因为级联实例将根据需要自动返回。

虽然模拟像getParameter这样的方法,但暗示可能最好使用真正的对象而不是模拟。模拟不是真正意味着简单的“吸气者”,这通常表明你可能会嘲笑过多。