我遇到了基于(Selenium2)Webdriver开发API的痛苦,这就是我的困境。
我基本上有4个包:
com.example.qa.pageobject
com.exmaple.qa.setup
com.example.qa.test
com.example.qa.utils
在com.example.qa.test
中,我有来自其他包的“使用”类的测试类。
我最终会采用以下测试方法。
@Test
public void testScenario16786() {
Login login = new Login();
login.setUp();
AddSingleDomain asd = new AddSingleDomain();
asd.addSingleDomain();
AddARecord ar = new AddARecord();
ar.AddARecordTest();
}
现在,这似乎是用Java开发的一个非常糟糕的例子,几乎看起来是程序性的。这样做还有其他办法吗?在设计API时我是否需要注意一些规则,其他人会使用这些规则?我确信这有点像经典问题而且之前已经解决了,我只是想知道解决这个问题的方法有多少,例如:
一个解决方案,可能是使用Factory Pattern,并且基于一个键,一个特定的类被实例化,这是好的,但是有更优雅的方式吗?
答案 0 :(得分:1)
您的测试类必然是程序性的 - 一组可重复的步骤,这很好。 通常推荐的方法是使用Page Object模式,selenium还提供了一个PageFactory对象来帮助你(参见页面末尾): page objects
答案 1 :(得分:0)
您可能会发现演示文稿"How to Design a Good API & Why it Matters" by Joshua Bloch会有所帮助。