[英]Spring @Autowired fields are null. I am using @AutoWired Fields in different class
這是我的班級代碼,其中有@Autowired
字段:
測試
@ContextConfiguration("classpath:spring.xml")
public abstract class TestA extends AbstractTestNGSpringContextTests {
@Autowired
@Value("#{environment.username}")
public String username;
@Autowired
@Value("#{environment.password}")
public String password;
@Autowired
@Value("#{environment.passwordtoken}")
public String passwordToken;
}
這是我嘗試使用上述String變量的另一個類
public class TestData extends TestA {
ForceApi api;
public void setApi() {
// Instantiating api by setting username and pwd
System.out.println("In getApi");
ApiConfig ac = new ApiConfig();
ac.setUsername(username);
ac.setPassword(passwordToken); ac.setLoginEndpoint("https://login.salesforce.com/services/Soap/u/34.0/");
api = new ForceApi(ac);
}
public void pTestData() {
setApi();
// Create test data for play group admin
String idSoql = "SELECT id FROM PlayGroup__c";
List<Map> mapResults = api.query(idSoql).getRecords();
}
}
並嘗試使用以下類執行測試:
public class TestB extends TestA{
@Test(dataProvider="browsers")
public void test1(){
TestData td = new TestData();
td.pTestData();
}
}
請幫助我確定我在哪里做錯了。 我在這行中得到了空指針異常:
List<Map> mapResults = api.query(idSoql).getRecords();
我自己解決了上述問題。
我在使用@Autowired字段的類中使用了@Service(“ testdata”)
@Service("testdata")
public class TestData extends TestA {
ForceApi api;
public void setApi() {
// Instantiating api by setting username and pwd
System.out.println("In getApi");
ApiConfig ac = new ApiConfig();
ac.setUsername(username);
ac.setPassword(passwordToken); ac.setLoginEndpoint("https://login.salesforce.com/services/Soap/u/34.0/");
api = new ForceApi(ac);
}
public void pTestData() {
setApi();
// Create test data for play group admin
String idSoql = "SELECT id FROM PlayGroup__c";
List<Map> mapResults = api.query(idSoql).getRecords();
}
}
並在TestB中進行如下更改
public class TestB extends TestA{
@Test(dataProvider="browsers")
public void test1(){
TestData td = (TestData )applicationContext.getBean("testdata");
td.pTestData();
}
}
並在spring.xml中添加了如下的bean
<bean id="testdata" class="data.TestData"/>
使用Null指針異常解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.