このチュートリアルでは、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 "feedback@yoursite.com";
}
}
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, "feedback@yoursite.com");
}
}
出力
feedback@yoursite.com
PASSED: testEmailGenerator
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================
ソースコードをダウンロードする
ダウンロードする –
TestNG-Spring-Example.zip
(35 KB)
参考文献
AbstractTestNGSpringContextTests JavaDoc]