2017-05-31 1 views
0

Ich bekomme NULL beim Lesen der Werte aus Datei .properties, wenn ich den Testfall ausführe. hier beim Debuggen des Testfalls kann ich die Werte sehen, die aus der Eigenschaftendatei geladen werden, wenn der Cursor in der Testklasse vorhanden ist, aber wenn der Cursor in die tatsächliche Klasse in dieser Klasse eintritt, bekomme ich dieselben Werte wie Null. Und mein Code wie folgtWie bekomme ich die Werte von der Eigenschaftendatei in den Testfällen

Vielen Dank im Voraus

@RestController 
@PropertySource("classpath:/com/example/prop.properties") 
public class ReadProp { 
    @Value("${name}") 
    private String name; 
    @Value("${rollNo}") 
    private String rollNo; 
    @RequestMapping(value="/") 
    public void getDetails(){ 
     System.out.println(name); 
     System.out.println(rollNo); 
    } 
} 
and the test case is as follows 

@RunWith(SpringRunner.class) 
@SpringBootTest 
@PropertySource("classpath:/com/example/prop.properties") 
public class ReadPropTest { 
    private ReadProp readProp = new ReadProp(); 
    @Value("${name}") 
    private String name; 
    @Value("${rollNo}") 
    private String rollNo; 
    @Test 
    public void readValues() { 
     System.out.println(name); 
     System.out.println(rollNo); 
     readProp.getDetails(); 


    } 

} 
+0

Dies liegt daran, Ihr diesen 'neuen ReadProp tun()' – pvpkiran

+0

Wie kann ich das Problem mit aus neuen ReadProp() – Billa

Antwort

0

Statt Erstellen eines neuen Objekts mit new ReadProp(). Du solltest es Autowire machen.
@Autowired ReadProp readProp;
in Ihrer Testklasse. Wenn Sie ein Objekt mit new erstellen, erhalten Sie nicht die Bean, die spring mit dem zugewiesenen Wert erstellt hat. Verwenden Sie dazu @Value.

+0

Seine Arbeit Thanks a lot – Billa

+0

prost lösen. akzeptiere die Antwort oder die Antwort, wenn es geholfen hat – pvpkiran

0

so etwas wie dieses Versuchen:

@PropertySource("classpath:prop.properties")// your error 
public class ReadPropTest { 
    @Value("${name}") 
    private String name; 
    @Value("${rollNo}") 
    private String rollNo; 
} 
Verwandte Themen