我正在为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()
时,它可能会返回我提供的具体值吗?
任何帮助将不胜感激。
答案 0 :(得分:1)
通常,您希望创建名为 Expectations
和Verifications
的子类,以便从多个测试类中重用。可以在documentation。
请注意,在实例化所述子类时,必须传入模拟实例。
然而,像getPermissionChecker()
这样的方法通常不需要明确记录,因为级联实例将根据需要自动返回。
虽然模拟像getParameter
这样的方法,但暗示可能最好使用真正的对象而不是模拟。模拟不是真正意味着简单的“吸气者”,这通常表明你可能会嘲笑过多。