首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在testNg xml中传递动态参数?我将使用某个随机库创建该参数。

如何在testNg xml中传递动态参数?我将使用某个随机库创建该参数。
EN

Stack Overflow用户
提问于 2020-08-05 07:49:22
回答 1查看 28关注 0票数 0

我想从testng xml向测试用例传递一个动态参数,我的参数类似于:

代码语言:javascript
复制
String dynamicParameter=generateRandomStringForMail();

下面是我的测试用例:

代码语言:javascript
复制
   @Test()
    public void customerCreatorAllProducts () throws Exception {
            setup();
            Functions.pages.LoginPage login = PageFactory.initElements(driver, Functions.pages.LoginPage.class);
            login.navigateRegisterPage().createFixedPasswordCustomerRequiredFields(dynamicParameter);
    }

我也会在其他情况下使用这个参数,我如何在testng.xml或其他地方使用这个参数呢?

EN

回答 1

Stack Overflow用户

发布于 2020-08-05 08:15:47

我对testing.xml并不熟悉,但是我马上就想到了http://mockito.org

  1. 将Mockito添加到项目中(例如,通过build.gradle页面)
  2. 将导入添加到测试文件中:

代码语言:javascript
复制
import static org.mockito.Mockito.*;

  1. 在您的测试类中,创建具有generateRandomStringForMail()方法的类的模拟。在我当前的项目中,我有

代码语言:javascript
复制
DefaultFileService mockFileService = mock(DefaultFileService.class);

  1. 定义您希望方法在这些测试条件下返回的内容,例如

代码语言:javascript
复制
when(mockFileService.generateRandomFileName()).thenReturn("fileName");

  1. 当您的测试需要使用有问题的方法的结果时,您可以使用"fileName",因为您已经告诉测试环境给出此响应。我的项目有一种更新与库存项目关联的图像文件的方法,该过程包括使用DefaultFileService生成随机文件名,然后将图像文件和新文件名传递给DefaultFileService以将文件保存在系统中。我的测试代码不能看到或猜测实际生成的文件名,但是我上面的'when‘行已经解决了这个问题,以便测试我的QuiltController类:

代码语言:javascript
复制
quiltController.update(data, mockFile);
verify(mockFileService).save(mockFile, "fileName"); // confirms the save() method was called with the expected parameters

这感觉很像你正在尝试做的事情,所以如果你真的想要探索Mockito,希望这能帮助你继续下去。如果您需要重构某些工作以使其更具可测试性,请不要感到惊讶。我做到了,并因此获得了更好的代码。试一试:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63256545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档