25
loading...
This website collects cookies to deliver better user experience
assert
or expect
), thus losing expressiveness and focusing software engineers on the wrong thing, or mix non-Ruby code with Ruby (e.g. cucumber & gherkin), thus missing out on the simplicity of Ruby.scenario 'Same-content strings are equal' do
'string' == 'string'
end
assert
or expect
. It just contains plain Ruby code for performing the comparison.scenario 'person name consists of first name and last name' do
person = Person.new(first_name: 'Bob', last_name: 'Winfrey')
fact { person.first_name == 'Bob' }
fact { person.last_name == 'Winfrey' }
person.name == 'Bob Winfrey'
end
# From: https://github.com/AndyObtiva/glimmer-dsl-specification
require 'glimmer-dsl-specification'
class Person
attr_reader :first_name, :last_name
def initialize(first_name: , last_name: )
@first_name = first_name
@last_name = last_name
end
def name
"#{first_name} #{last_name}"
end
end
module Glimmer::Specification
specification('Glimmer DSL for Specification') {
use_case('Compare Two Objects for Equality') {
scenario 'Same-content strings are equal' do
'string' == 'string'
end
scenario 'Different-content strings are not equal' do
'string1' != 'string2'
end
scenario 'Same-number integers are equal' do
1 == 1
end
scenario 'Different-number integers are not equal' do
1 != 2
end
}
use_case('Verify Multiple Facts') {
scenario 'person name consists of first name and last name' do
person = Person.new(first_name: 'Bob', last_name: 'Winfrey')
fact { person.first_name == 'Bob' }
fact { person.last_name == 'Winfrey' }
person.name == 'Bob Winfrey'
end
}
}
end