在开发基于Java的API时,我应该记住哪些方面

时间:2012-09-26 18:18:40

标签: java design-patterns

我遇到了基于(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,并且基于一个键,一个特定的类被实例化,这是好的,但是有更优雅的方式吗?

2 个答案:

答案 0 :(得分:1)

您的测试类必然是程序性的 - 一组可重复的步骤,这很好。 通常推荐的方法是使用Page Object模式,selenium还提供了一个PageFactory对象来帮助你(参见页面末尾): page objects

答案 1 :(得分:0)

您可能会发现演示文稿"How to Design a Good API & Why it Matters" by Joshua Bloch会有所帮助。