如何在此类的定义中为冗长的类名创建别名?我不希望它在类定义之外可访问。我无法使用@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:/Project/applicationContext servlet.xml")
public class AvamarControllerTest {
private final static Logger LOGGER = LoggerFactory
.getLogger(AvamarControllerTest.class);
// REMOVED MOCK HERE
private AvamarController avamar;
@Mock
private AvamarAllComponentsVO avamarComponent;
/*@Before
public void setupMock() {
avamar = mock(AvamarController.class);
avamarComponent = mock(AvamarAllComponentsVO.class);
}*/
@Before
public void setupMock() {
MockitoAnnotations.initMocks(this);
// INJECT MOCKED DEPENDENCES IF ANY
avamar = new AvamarController(...inject mocked dependencies if any....);
// DEPENDING ON WHAT YOU WANNA TEST, MOCK RETURN VALUES...One example below
Mockito.when(avamarComponent. getApp_Hype_Feat_Filters(any()))
.thenReturn(null);
}
@Test
public void testGetCompGuidePage() {
String productVersion ="7.5";
// THIS WILL THROW NULL EXCEPTION. NOT SURE IF ITS INTENTSIONAL
Model model = null;
ModelAndView modelView = new ModelAndView();
try {
modelView = avamar.getCompGuidePage(productVersion , avamarComponent, model );
} catch (CustomCompGuideException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String abc = "new";
}
}
或typedef
。
在我的案例中,它是一个类模板。
using
有什么想法吗?
答案 0 :(得分:2)
你做不到。构造函数的 id-expression ,即类定义中构造函数的名称是根据[class.ctor]p1(强调我的):
- 在属于成员规范的成员声明中,但不是朋友声明, id-expression < / em>是直接封闭类的注入类名称;
什么是注入类名?根据{{3}}
class-name 被插入到在看到 class-name 之后立即声明它的范围内。 class-name 也会插入到类本身的范围内;这被称为注入类名称。 [...]
所以inject-class-name是类本身的名称,不能是别名。
[class]p2中的这句话进一步强化了这一点:
class-name 不应是 typedef-name 。
如果您甚至不想编写构造函数,请考虑重命名该类,因为名称过于复杂。