我有我的父抽象JUnitTest类:
public abstract class RestWSTest
{
public RestWSTest()
{
}
@Before
public void setUp() throws Exception
{
...
}
@After
public void tearDown() throws Exception
{
...
}
}
然后我希望有一个扩展RestWSTest
的类,如下所示:
public class RestWSCreateGroupTest extends RestWSTest
{
public RestWSCreateGroupTest()
{
super();
}
@Before
public void setUp() throws Exception
{
super(); --> *Constructor call must be the first statement in a constructor*
...
}
@After
public void tearDown() throws Exception
{
super(); --> *Constructor call must be the first statement in a constructor*
...
}
@Test
public void testCreateGroup()
{
...
}
}
为什么我收到错误消息?我有一个构造函数,在那里我调用super()
,所以我真的不知道该怎么做......
答案 0 :(得分:2)
方法public void setUp()
不是构造函数。你不能在里面打电话给super();
。我想你打算super.setUp();
答案 1 :(得分:2)
您无法在构造函数方法之外使用super()调用。
换句话说,setUp()和tearDown()是方法,它们不是构造函数,因此你不能使用super()调用。
相反,您可以使用以下语法访问/调用超类方法:super.mySuperClassMethod();
所以改变你的代码如下:
public class RestWSCreateGroupTest extends RestWSTest
{
public RestWSCreateGroupTest()
{
super();
}
@Before
public void setUp() throws Exception
{
super.setUp();
...
}
@After
public void tearDown() throws Exception
{
super.tearDown();
...
}
@Test
public void testCreateGroup()
{
...
}
}
有关详细信息,请参阅以下链接: https://docs.oracle.com/javase/tutorial/java/IandI/super.html