このチュートリアルでは、TestNGを使ってSpringのコンポーネントをテストする方法を説明します。

使用されるツール:

  1. TestNG 6.8.7

  2. Spring 3.2.2.RELEASE

  3. Maven 3

  4. 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)