Spring IOC方式TESTGNテストケースと組み合わせて、簡単javaのコマンドモードをテスト

3917 ワード

JAvaコマンドモード:コマンド(「要求」)を1つのオブジェクトにカプセル化することができ、1つのコマンドオブジェクトは特定の受信上に動作のセットをバインドすることによって1つのリクエストをカプセル化する.コマンドオブジェクトは、実行動作と受信者を直接オブジェクトに組み込む、実行方法のインタフェースのみを外部に露出することで、動作の要求者と動作の実行者とのデカップリングの目的を簡単に達成する.
 
以下、簡単なコマンドモードを簡単な例でテストするとともに、spring iocの方式+testNGの試験方式を採用し、リモコンのリモコン点灯のコマンドモードの実現とテストを実現する.
1.実行方法を含むコマンドインタフェースを確立し、コマンドオブジェクトが実現しなければならない.実行方法は暴露されたインタフェース方法であり、受信者呼び出しに提供する.
public interface Command {
    void execute();
}

2.コマンドオブジェクトを作成し、コマンドインタフェースを実現するとともに、動作実行者の参照を含める.注記@Compentでspringのスキャンロードを容易にするbean@Resource注入ランプの例
@Component
public class LightOnCommand implements Command {

    @Resource
    private Light light;

    @Override
    public void execute() {
        light.lightOn();
    }

}

3.ランプの実装クラス、受信者、実際の点灯対象を確立する
@Component
public class Light {
public void lightOn() { System.out.println(" !!"); } }

4.リモコン類を確立し、ランプをつける命令を出すと同時に、命令対象を導入し、buttonPress方法でボタンを押し、ランプをつける.
@Component
public class RemoteControl {

    @Resource
    private Command lightOnCommand;

    public void buttonPress() {
        lightOnCommand.execute();
    }

}

5.okは簡単なコマンドモードが確立され、TESTNGのIOCベースの方法で上のリモコンのコマンドモードコードの正確さをテストします.まずspring-testを確立します.xmlのリソースファイル、
スキャンするパスを簡単に定義し、注釈で生成したbeanをロードします.次のように定義します.
<?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.xsd 
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context.xsd">
    <context:component-scan base-package="com.suning.soa.lilin.test"></context:component-scan>
</beans>

6.BaseTestのテストクラスを作成する:主にAbstractTestNGSpringContextTestsを継承するためにSpringContextを起動し、他のテストクラスの統合BaseTestの使用を便利にする
public abstract class BaseTest extends AbstractTestNGSpringContextTests {

}

7.主なリモコンテストクラスを確立し、RemoteControlTest:
@ContextConfiguration(locations = { "classpath:/conf/spring/spring-test.xml" })      Spring ContextLoader    context  .
@Test  TESTNG        .             ,         .
@ContextConfiguration(locations = { "classpath:/conf/spring/spring-test.xml" })
public class RemoteControlTest extends BaseTest {

    @Resource
    RemoteControl remote;

    @Test
    public void test() {
        remote.buttonPress();
    }

}

最後に、TESTGNの試験方法を実行することで、正しい点灯の結果を示すことができる.so簡単なリモコン点灯のコマンドモードのテスト例をまとめた.