2014-02-06 2 views
2
@Before 
public void setup(){ 
    Ground ground = new Ground(100, 100); 
} 

@Test 
public void getDimX(){ 
    String msg = "For a newly created Ground(100, 100), ground.getDimensionX()  should return 100"; 
    assertEquals(100, ground.getDimensionX()); 
} 

위의 코드는 NullPointerException을 반환합니다. Ground ground = new Ground(4, 4);getDimX() 메소드로 옮기면 테스트가 잘 진행됩니다. 동일한지면을 사용할 여러 가지 테스트가 있으므로 각 테스트 케이스마다 새로운 테스트를 만들지 않는 것이 좋습니다. 또한, 내가 완전히 @Begin 블록을 없애고 지상 인스턴스화를 남겨두면, 또한 정상적으로 작동합니다. 다음 테스트 설정 외부 테스트 클래스의 private 필드를 만든 @Before?Junit @ 제대로 작동하지 않기 전에

답변

5

의 점, 즉

public class MyTest{ 
    private Ground ground; 
    ... 
} 

그런 다음에 땅을 인스턴스화는 무엇인가 당신의 before()을 할 것으로 보인다

@Before 
public void before(){ground = new Ground(100,100);} 
+0

속임수, 고마워! – user3281235

+0

@ user3281235 대답을 수락하십시오. – aasu

+0

이렇게 나에게 트릭을하지는 마십시오! 나는 똑같은 문제에 직면하고있다! – shahakshay94

관련 문제