Flagpole is a QA testing framework that is easy to learn, flexible, portable, and fast.
Developer Style Guide
- Class is ordered: public properties, private/protected properties, constructor, public methods, private/protected methods
- Private/protected properties and methods are prefixed with _
- Camel-case all the things, except class names and enums
- Interfaces are prefixed by i
- Think about the developer experience of the person writing the tests first and foremost
- Definitively type whenever possible
- Favor readability over cleverness or brevity
- Document and comment liberally
- Don't try to do everything, but do the common QA functions really well
- As much as possible, create a common experience across different classes of scenarios
- Keep the framework as light as possible, which might mean auto-discovery and dynamically loading optional libraries
- It should be obvious, it should mislead of confuse or cause additional cognitive load
- Do what you say, say what you do. No side effects.
- Try to start methods with verbs unless it's just really short, sweet, and obvious not to
- Start properties or methods that return booleans with "is" or "has" or "can" or something similar that reads what it is
- Start methods that convert an object to a different type with "to" like "toArray"
- Some things are designed to be chained, such as setting up a Suite or Scenario, so allow this to be chained by returning themselves, but don't chain just for the sake of chaining. Chain of readability and convenience of DX only.
(11 days ago)