TestNG-工厂-无法保存工厂参数供以后使用

时间:2019-06-20 07:30:08

标签: java testing testng

我有这个工厂班级

public class SimpleTestFactory{

@Factory
public Object[] factoryMethod(){
    return new Object[] { new SmokeSuite("carrier1"),new SmokeSuite("carrier2") };
}}

现在我有了这个测试类-我正在使用FactoryHelper类来“保存”载波的值,以便以后可以获取并重用它。

package com.xxx.xxx.mobile;

public class SmokeSuite extends MobileTestBase {

private String carrier;

public SmokeSuite(String carrier){
    this.carrier=carrier;
    FactoryHelper.setTier(carrier);
    logger.info("------------ Running for "+carrier);
}
// Commented out setup and teardown to save space
@Test
public void test1() throws Exception {
    System.out.println("-------------------------");
    System.out.println(FactoryHelper.getTier());
    System.out.println(carrier);
    System.out.println("-------------------------");
}}

这是我的输出

[INFO ] 2019-06-20 00:25:27.637 [main] MobileTestBase - ------------ Running for carrier1
[INFO ] 2019-06-20 00:25:27.640 [main] MobileTestBase - ------------ Running for carrier2

-------------------------
carrier2
carrier1
-------------------------
-------------------------
carrier2
carrier2
-------------------------

因此,似乎仅在构造函数中拾取并打印了载波值,而在实际测试中却没有。但是承运人的价值按预期印刷。 我的预期结果是

-------------------------
carrier1
carrier1
-------------------------
-------------------------
carrier2
carrier2
-------------------------

任何帮助都将非常有帮助。谢谢

1 个答案:

答案 0 :(得分:0)

我应该在安装程序中而不是在构造函数中设置值,从而解决了该问题。