2010-07-27 7 views
0

J'utilise junit 4.8.1.Junit @Before l'annotation donne une exception Nullpointer

Ce qui suit est le code. Je reçois l'exception "Nullponiter". Je soupçonne que le code "SetUp" sous @Before n'a pas été exécuté avant d'autres méthodes. Demander aux amis érudits de m'aider à résoudre le problème. (Ceci est un exemple pour le livre TDD par Koskela)

import org.junit.*; 
import java.util.*; 
import static org.junit.Assert.*; 

public class TestTemplate { 
private Template template; 
@Before 
public void setUp() throws Exception{ 
Template template = new Template("${one},${two},${three}"); 
template.set("one","1"); 
template.set("two","2"); 
template.set("three","3"); 
} 
@Test 
public void testmultipleVariables() throws Exception{ 
testassertTemplateEvaluatesTo("1, 2, 3"); 
} 
@Test 
public void testUnknownVariablesAreIgnored() throws Exception{ 

template.set("doesnotexist","whatever"); 
testassertTemplateEvaluatesTo("1, 2, 3"); 
} 
private void testassertTemplateEvaluatesTo(String expected){ 


assertEquals(expected,template.evaluate()); 
} 

} 

Répondre

3

Vous avez deux variables avec le même nom:

private Template template; 
@Before 
public void setUp() throws Exception{ 

// declaring second variable here 
Template template = new Template("${one},${two},${three}"); 

changement cette dernière ligne à:

template = new Template("${one},${two},${three}"); 
+0

Merci beaucoup pour la réponse très rapide. Ça a marché. Cordialement Anand – Anand

+0

afin que vous puissiez accepter la réponse ;-) – djna