方法中的参数数量

Tar*_*run 4 java refactoring selenium

我有Selenium测试填写表格.我有一个方法,但这个方法在参数数量方面已经过度生长 -

 newMerchantPage.addEditMerchant(merchantDomain, merchantName,
            merchantCategory, true, merchantDescription, merchantNotes,
            merchantTags, true, true, false, false, merchantTitle,
            additionalDescription, merchantHeading, dummyCouponLink, true);
Run Code Online (Sandbox Code Playgroud)

只有字符串和布尔值.我正在考虑使用集合,然后在调用方法中迭代集合以进行更多处理.虽然还不确定这是否可行.有什么建议?

修改方法:

在实施了几个建议后,我的方法(不同的方法)看起来像 -

ContactPage contactPage = new ContactPage(driver); 
setContactFormData(); 
contactPage.setName(name).setEmailAddress(emailAddress).setSubject(subject).setM? ?essage(message); 
contactPage.submitContactForm(contactPage); 
Run Code Online (Sandbox Code Playgroud)

submitContactForm依次调用不同的实用程序方法.看起来有多糟糕?特别是最后一行(对象的方法调用和作为参数传递的同一对象)?

aio*_*obe 5

一种常见的方法是将参数包装在一个类中.然后,这个类可以提供返回的set方法this以允许很好的链接.(参见ProcessBuilder一个很好的例子.)

例:

MerchantData data = new MerchantData();   // initialize with sensible defaults

data.setDomain("example.com")
    .setName("Some Name")
    .setTags("tag1, tag2);

newMerchantPage.addEditMerchant(data);
Run Code Online (Sandbox Code Playgroud)