Tôi muốn đăng ký một số phạm vi web cho bối cảnh mùa xuân theo phương pháp @BeforeTest
của mình. Nhưng hóa ra bối cảnh mùa xuân vẫn là null
tại thời điểm đó.Truy cập ngữ cảnh mùa xuân trong @ngày thử nghiệm của Beforeng
Thử nghiệm chạy tốt, nếu tôi đổi thành @BeforeMethod
. Tôi tự hỏi làm thế nào tôi có thể truy cập vào bối cảnh trong @BeforeTest
, bởi vì tôi không muốn mã đăng ký phạm vi được lặp lại cho mỗi phương pháp thử nghiệm.
Dưới đây là các đoạn mã của tôi.
public class MyTest extends MyBaseTest {
@Test public void someTest() { /*...*/ }
}
@ContextConfiguration(locations="/my-context.xml")
public class MyBaseTest extends AbstractTestNGSpringContextTests {
@BeforeTest public void registerWebScopes() {
ConfigurableBeanFactory factory = (ConfigurableBeanFactory)
this.applicationContext.getAutowireCapableBeanFactory();
factory.registerScope("session", new SessionScope());
factory.registerScope("request", new RequestScope());
}
/* some protected methods here */
}
Dưới đây là thông báo lỗi khi chạy thử nghiệm:
FAILED CONFIGURATION: @BeforeTest registerWebScopes java.lang.NullPointerException at my.MyBaseTest.registerWebScopes(MyBaseTest.java:22)
Bạn có biết bất kỳ tài liệu nào về lý do tại sao các thành viên được tiêm không có sẵn trong các phương thức '@ BeforeTest' và thậm chí' @ BeforeSuite' không? – ecbrodie
10x :) nó dễ dàng hơn sau đó viết trình xử lý bài đậu –