是否有一个相当于C#的new
在Java中修改?
我想使用它的单元测试 - 每init()方法应标,并最终使用@Before注解。 然后,JUnit的执行所有这些的init()方法。
我不想打扰想出了这些初始化的新名称()方法,而我肯定想将它们标记为最终确保它们不会覆盖海誓山盟(另一种模式是重写,并调用超。的init()从每一个init()方法)。
是否有一个相当于C#的new
在Java中修改?
我想使用它的单元测试 - 每init()方法应标,并最终使用@Before注解。 然后,JUnit的执行所有这些的init()方法。
我不想打扰想出了这些初始化的新名称()方法,而我肯定想将它们标记为最终确保它们不会覆盖海誓山盟(另一种模式是重写,并调用超。的init()从每一个init()方法)。
一个常见的模式是让自己的“前”最后的方法,并创建子类保护(摘要)方法。
@Before
public final void before() {
onBefore();
}
protected void onBefore() {
}
protected void onBefore() {
// prepare the test fixture
}
这给你两全其美:
它有一个缺点 - 它关系到你一个超一流的。 不过,这可能不是一个问题,您的环境。
不幸的是没有。 哎呀,前@Override
有没有压倒一切的时候防范错别字甚至没有任何办法。
不能创建具有相同签名因为没有它覆盖该方法的超类方法的方法。 诚然,我尽量不这样做,即使在C#...
你有没有考虑使用initFoo
和initBar
上课Foo
和Bar
分别为(等)? 这是一个很简单的模式可循,并且将避免名称冲突。 有点难看,无可否认。
Java没有一个等同于C# new
运营商是
用来隐藏从基类构件继承的成员。
对于你想要做什么,为什么不创建一个基类,你的其他测试可以扩展,并创建一个abstract
命名方法init()
标有@Before
在基类)? 这迫使所有子类,以提供一个init()
方法。