VOOZH about

URL: https://deepwiki.com/Accenture/Ocaramba/3-page-object-model-and-test-structure

⇱ Page Object Model and Test Structure | Accenture/Ocaramba | DeepWiki


Loading...
Last indexed: 6 June 2026 (fb3580)
Menu

Page Object Model and Test Structure

This page provides a high-level overview of how Ocaramba implements the Page Object Pattern. It describes the base class hierarchy that connects the core framework to specific test runner implementations and the reference page objects used for testing.

Overview of the POM Architecture

Ocaramba utilizes a structured inheritance model to separate framework logic, project-specific setup, and page-specific interactions. This structure ensures that test runners like NUnit, MsTest, and Xunit can consume the same page objects while maintaining their own lifecycle hooks.

Framework to Code Entity Mapping

The following diagram bridges the conceptual "Natural Language Space" of the Page Object Model to the "Code Entity Space" using specific classes and properties found in the codebase.

Diagram: POM Entity Mapping


Sources:


ProjectTestBase and ProjectPageBase

The bridge between the framework and a specific test suite is formed by two primary base classes.

For details, see ProjectTestBase and ProjectPageBase.

Sources:


Page Objects: TheInternet and Kendo Examples

Ocaramba provides a dedicated project, Ocaramba.Tests.PageObjects, which serves as a reference implementation of the Page Object Model README.md60 This project contains page objects for "The Internet" (a popular test site) and various Kendo UI components.

These classes demonstrate the use of:

  • Locators: Using ElementLocator to define finding strategies (Id, Name, XPath, etc.) README.md113-114
  • Navigation: Hub pages like InternetPage README.md107-108 that provide methods to navigate to specific sub-pages.
  • Component wrappers: Specialized interaction with complex elements like tables or frames.

For details, see Page Objects: TheInternet and Kendo Examples.

Sources:


Test Runner Integrations

Ocaramba is runner-agnostic and provides implementation examples for the three major .NET testing frameworks.

Diagram: Test Runner Lifecycle Integration



























ProjectPrimary PurposeKey Features
Ocaramba.Tests.NUnitPrimary reference projectPerformance tests Ocaramba.Tests.NUnit/ProjectTestBase.cs91-92 Data-Driven helpers Ocaramba.Tests.NUnit/ProjectBaseConfiguration.cs65-113
Ocaramba.Tests.MsTestMicrosoft Test supportCSV/XML Data-Driven Testing (DDT) [README.md:39-39].
Ocaramba.Tests.XunitXunit supportUses the TestFixture pattern for context [README.md:59-59].

For details, see Test Runner Integrations: NUnit, MsTest, Xunit.

Sources:


BDD with SpecFlow

The Ocaramba.Tests.Features project integrates Behavior Driven Development (BDD) using SpecFlow README.md55 It uses BoDi for dependency injection to pass the DriverContext into step definition classes, allowing for clean Gherkin-based test scenarios.

For details, see BDD with SpecFlow (Ocaramba.Tests.Features).

Sources:


Data-Driven Testing and Configuration

Ocaramba supports complex Data-Driven Testing (DDT) scenarios and flexible environment configuration.

For details, see Test Runner Integrations: NUnit, MsTest, Xunit.

Sources: