Tôi có một thư viện Java tương đối nhỏ, triển khai một vài chục bean (không có cơ sở dữ liệu hoặc GUI). Tôi đã tạo một tệp cấu hình Spring Bean mà các dự án Java khác sử dụng để tiêm đậu của tôi vào công cụ của họ.Làm thế nào để tạo TestContext cho Spring Test?
Tôi bây giờ là lần đầu tiên thử sử dụng Spring Test để tiêm một số loại đậu này vào các lớp thử nghiệm junit của tôi (thay vì chỉ đơn giản là tạo ra chúng).
Tôi đang làm điều này một phần để tìm hiểu Spring Test và một phần để buộc các bài kiểm tra sử dụng cùng một tệp cấu hình bean mà tôi cung cấp cho người khác.
Trong tài liệu hướng dẫn Spring, tôi cần tạo ngữ cảnh ứng dụng bằng cách sử dụng lớp "TestContext" đi kèm với Spring. Tôi tin rằng điều này nên được thực hiện trong một tệp XML mùa xuân mà tôi tham chiếu qua chú thích @ContextConfiguration trên lớp thử nghiệm của tôi.
@ContextConfiguration({"/test-applicationContext.xml"})
Tuy nhiên, không có gợi ý về nội dung cần đưa vào tệp!
Khi tôi chạy các thử nghiệm của mình từ bên trong Eclipse, có lỗi cho biết "không tải được Ngữ cảnh ứng dụng" .... tất nhiên.
Cập nhật:
Đây là thử nghiệm applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>Holds application context for testing of the domain module.</description>
<!-- Imports the uuid generator bean definitions -->
<import resource="resources/domain-uuid.xml"/>
</beans>
thư mục dự án của tôi là như thế này:
domain/
src/
main/
java/
resources/
test/
java/
resources/ (location of test-applicationContext.xml)
Just for fun Tôi cũng đã cố gắng để xây dựng từ dòng lệnh mvn qua "mvn clean test" và tôi nhận được các lỗi sau đây có thể là vấn đề thực sự của tôi:
package org.springframework.test.context does not exist
package org.springframework.test.context.junit4 does not exist
cannot find symbol
symbol: class ContextConfiguration
@ContextConfiguration({"/resources/test-applicationContext.xml"})
cannot find symbol
symbol: class SpringJUnit4ClassRunner
@RunWith(SpringJUnit4ClassRunner.class)
Xin lỗi - tôi không sử dụng JNDI hoặc DAO. Tôi chỉ không biết nơi để tạo textContext! Bạn nói "tệp ngữ cảnh ứng dụng" - đó là gì? – HDave
"Tệp ngữ cảnh ứng dụng" chỉ là tệp XML cấu hình Spring của bạn. Cái có phần tử cấp cao nhất. Bạn có thể đặt nó trực tiếp dưới WEB-INF, hoặc bạn có thể đặt nó trên classpath, như dưới src/test/resource như bạn đã nói trong một trong các bình luận khác của bạn. Nó có thể giúp bạn thêm cấu trúc thư mục của bạn (các phần có liên quan) vào bài đăng gốc của bạn và cũng hiển thị tệp test-applicationContext.xml của bạn. –
OK - Tôi nghĩ mình đã hiểu. Tôi không phải chỉ định TestContext ở bất cứ đâu. Mùa xuân chỉ "biết" bằng cách nào đó (như thế nào ???). Vấn đề là Spring không thể tìm thấy tập tin cấu hình của tôi. – HDave