package org.test4j.spec.scenario.step; import java.io.InputStream; import java.util.List; import org.test4j.spec.inner.IScenario; import org.test4j.spec.inner.StepType; import org.test4j.spec.scenario.XmlJSpecScenario; import org.test4j.testng.Test4J; import org.test4j.tools.commons.ResourceHelper; import org.testng.annotations.Test; @SuppressWarnings("serial") public class XmlJSpecStepTest extends Test4J { /** * 验证模板方法参数的覆盖 * * @throws Exception */ @Test public void testParseStep() throws Exception { InputStream is = ResourceHelper.getResourceAsStream(XmlJSpecStepTest.class, "template-step.xml"); List<IScenario> scenarios = XmlJSpecScenario.parseJSpecScenarioFrom(is, "utf-8").getScenarios(); want.list(scenarios).sizeEq(2).reflectionEqMap(2, new DataMap() { { this.put("scenario", "scenario1", "scenario2"); } }); want.list(scenarios.get(0).getSteps()).reflectionEqMap(2, new DataMap() { { this.put("method", "whenMethod"); this.put("type", StepType.When, StepType.Then); this.put("paras", new DataMap() { { this.put("参数1", "[1,2,3]"); this.put("参数2", "[2,3,4]"); } }, new DataMap() { { this.put("参数", "234"); } }); this.put("displayText", "模板方法测试,参数一\n参数1=[1,2,3],参数二\n参数2=[2,3,4]", "验证方法,同名不同类型\n参数=234"); } }); want.list(scenarios.get(1).getSteps()).reflectionEqMap(2, new DataMap() { { this.put("method", "givenMethod", "whenMethod"); this.put("type", StepType.Given, StepType.When); this.put("paras", new DataMap() { { this.put("参数", "init"); } }, new DataMap() { { this.put("参数1", "[1,2,3]"); this.put("参数2", "[4,5,6]"); } }); } }); } }