Sha256: a43b8c1b4d4138d75d017c1c67e39c514777b0aeedacc037834b6917892186db
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
FancySpec describe: Class Contracts with: { it: "fails inclusion" when: { { class A { include: Fancy Enumerable } } raises: Class Contracts InterfaceNotImplementedError } it: "doesn't fail inclusion" when: { { class A { def each: block include: Fancy Enumerable } } does_not raise: Class Contracts InterfaceNotImplementedError { class B { provides_interface: 'each: include: Fancy Enumerable } } does_not raise: Class Contracts InterfaceNotImplementedError } it: "returns the amount of not implemented interface methods" with: 'missing_methods_for_interface: when: { class Interface { expects_interface_on_inclusion: ['hello, 'world] } { class C { include: Interface } } raises: Class Contracts InterfaceNotImplementedError with: |e| { e methods is: ['hello, 'world] e interface is: Interface e including_class is: C } { class D { def hello include: Interface } } raises: Class Contracts InterfaceNotImplementedError with: |e| { e methods is: ['world] e interface is: Interface e including_class is: D } } }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fancy-0.9.0 | tests/contracts.fy |
fancy-0.8.0 | tests/contracts.fy |