test 4 jシーン化テスト

3254 ワード

初歩的な文書はこれを参照https://github.com/test4j/test4j.doc

1.シーン化テスト


以前のユニットテストは単一のテスト例に接触したことがあるだけで、test 4 jにはシーン化されたテスト案が存在しているので、まず初歩的に感じてみましょう.
1.1 BeforeScenarioDemo継承Jspec 1.2コードに@Given,@When,@Thenの3つのメソッドを修飾する注記1.3@Name修飾メソッドパラメータが表示されます
public class BeforeScenarioDemo extends JSpec {
    private Integer var = 0;

    @Given
    public void setVar(final @Named(" ") Integer var//
) throws Exception { this.var = var; } @When public void addVar(final @Named(" ") Integer inc//
) throws Exception { this.var += inc; } @Then public void checkVar(final @Named(" ") Integer expected//
)throws Exception { want.number(var).isEqualTo(expected); } }

2.BeforeScenarioDemo.story

BeforeScenario
Given set var
     【 =23】
    
Scenario  
When add var
     【 =10】
    
Then check var
     【 =33】  

Given set varを例にとると、Givenは対応する注釈を表し、set varは対応する方法を表し、setVarと書くこともできる
テスト結果:
====================Begin Scenario-01:  ====================
* SUCCESS Given : setVar
* SUCCESS When  : addVar
* SUCCESS Then  : checkVar
====================End Scenario-01:  ====================

2.Springサポート


@SpringContextを使用してspringプロファイルを追加
@SpringContext("spring-config.xml")
public class TestDemo extends Test4J {

    @Autowired
    private TestService testService;

    @Test
    public void test1()
    {
        testService.sayHello();
    }
}

3.stepステップテスト


Mix注記を使用してステップテストを実行
@Mix({ StepsDemo1.class, StepsDemo2.class, StepsDemo3.class })
@SpringContext("spring/spring-demo.xml")
public class StepsSpec extends JSpec {

    @Override
    protected void initSharedData() {
        this.shared = new MyName();
    }

    public static class MyName implements SharedData {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }
}

public class StepsDemo1 extends Steps.Default {

    private String name;
    /**
     *  Steps spring bean 
     */
    @SpringBeanByName
    UserService    userService;

    @Given
    public void method1(final @Named(" ") String name) {
        want.object(userService).notNull();
        this.name = name;
        super.shared.setName(name);
    }

    @When
    public void doing() throws Exception {
        want.object(userService).notNull();
        this.name = "hello, " + this.name;
    }

    @Then
    public void checkPara(final @Named(" ") String expected//
) throws Exception { want.object(userService).notNull(); want.string(name).isEqualTo(expected); } } public class StepsDemo2 extends Steps.Default { @Step public void printSomething() { System.out.println("print name:" + super.shared.getName()); } } public class StepsDemo3 { @Step public void printSomething3() { System.out.println("print name, no shared data"); } }