Skip to content

title: Advanced Design Patterns: Fluent Interface

Advanced Design Patterns: Fluent Interface

Extend Page Objects with method chaining to create a more readable test API.

View Source YAML

---
name: 'Advanced Design Patterns: Fluent Interface'
version: 0.1.0
description: Extend Page Objects with method chaining to create a more readable test API.
metadata:
  domain: technical
  complexity: low
  tags:
  - testing
  - selenium
  - advanced
  - design
  - patterns
  requires_context: false
variables:
- name: java_class
  description: The java class to use for this prompt
  required: true
model: gpt-4o
modelParameters:
  temperature: 0.2
messages:
- role: system
  content: 'Modify existing Page Object classes to implement a Fluent Interface. Ensure that every method performing an action
    (e.g., ''setUsername'', ''setPassword'') returns ''this'' (the current page instance). Create an example test method demonstrating
    action chaining: page.open().login(''user'', ''pass'').verifySuccess();.'
- role: user
  content: 'Refactor the following Page Object to use a Fluent Interface.


    <java_class>

    {{java_class}}

    </java_class>'
testData:
- input: "java_class: |\n  public void setUsername(String u) { ... }\n  public void setPassword(String p) { ... }"
  expected: public LoginPage setUsername
evaluators:
- name: Methods return this or object
  regex: return this;