TestNG + Spring統合の例
このチュートリアルでは、TestNGを使ってSpringのコンポーネントをテストする方法を説明します。
使用されるツール:
-
TestNG 6.8.7
-
Spring 3.2.2.RELEASE
-
Maven 3
-
Eclipse IDE
プロジェクトの依存関係
SpringとTestNGを統合するには、 `spring-test.jar`が必要です。以下を追加してください:
pom.xml
<properties> <spring.version>3.2.2.RELEASE</spring.version> <testng.version>6.8.7</testng.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>${testng.version}</version> <scope>test</scope> </dependency> </dependencies>
2.スプリングコンポーネント
単純なSpringコンポーネントを作成し、後でこのコンポーネントをTestNGでテストします。
EmailGenerator.java
package com.mkyong.testng.project.service.email; public interface EmailGenerator { String generate(); }
RandomEmailGenerator.java
package com.mkyong.testng.project.service.email; import org.springframework.stereotype.Service; @Service public class RandomEmailGenerator implements EmailGenerator { @Override public String generate() { return "[email protected]"; } }
3. TestNG Spring
Springコンポーネントのスキャンのために、テストフォルダにSpring構成ファイルを作成します。
$ \ {project}/src/test/resources/spring-test-config.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd "> <context:component-scan base-package="com.mkyong.testng"/> </beans>
TestNGのSpringコンポーネントにアクセスするには、 `AbstractTestNGSpringContextTests`を拡張します。次の例を参照してください:
$ \ {プロジェクト}/src/test/java/com/mkyong/testng/examples/spring/TestSpring.java
package com.mkyong.testng.examples.spring; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.Assert; import org.testng.annotations.Test; import com.mkyong.testng.project.service.email.EmailGenerator; @Test @ContextConfiguration(locations = { "classpath:spring-test-config.xml" }) public class TestSpring extends AbstractTestNGSpringContextTests { @Autowired EmailGenerator emailGenerator; @Test() void testEmailGenerator() { String email = emailGenerator.generate(); System.out.println(email); Assert.assertNotNull(email); Assert.assertEquals(email, "[email protected]"); } }
出力
[email protected] PASSED: testEmailGenerator =============================================== Default test Tests run: 1, Failures: 0, Skips: 0 ===============================================
ソースコードをダウンロードする
ダウンロードする –
TestNG-Spring-Example.zip
(35 KB)
参考文献
AbstractTestNGSpringContextTests JavaDoc]