diff options
-rw-r--r-- | fable-arch.md | 76 | ||||
-rw-r--r-- | fable-arch.yaml | 2 |
2 files changed, 49 insertions, 29 deletions
diff --git a/fable-arch.md b/fable-arch.md index 5e34aaa..785f468 100644 --- a/fable-arch.md +++ b/fable-arch.md @@ -357,37 +357,57 @@ other resource constraints. # Acceptance tests for Fable {#acceptance} -FIXME: This needs to be written eventually, when Fable is implemented. - -## Simple scenario - -We test that Fable can execute a very simple scenario. The test is -based on generating the test program from an input file, running the -test program, and examining the log file. This will require that the -generated test program logs the things it does in a known format. -Effectively, the log messages become a part of the contract. - -````fable -given file "simple.md" containing - # Simple - ```fable - given precondition foo - when I do bar - then bar was done - ``` -and file "simple.yaml" containing - - given: precondition foo - function: nop - - when: I do bar - function: nop - - then: bar was done - function: nop -and file "simple.py" containing - def foo(ctx): pass +## The simplest possible scenario + +This tests that Fable can run a simplest possible scenario +successfully. The test is based on generating the test program from an +input file, running the test program, and examining the log file. + +```fable +given files simple.md, simple.yaml, and simple.py when I run ftt-codegen --run simple.md then log file says scenario "Simple" was run and log file says step "given precondition foo" was run and log file says step "when I do bar" was run and log file says step "then bar was don" was run and program finished successfully -```` +``` + +### simple.md—markdown file + +~~~~{#simple.md} +# Simple +This is the simplest possible test scenario + +```fable +given precondition foo +when I do bar +then bar was done +``` +~~~~ + +### simple.yaml—bindings file + +```{#simple.yaml} +- given: precondition foo + function: precond +- when: I do bar + function: do +- then: bar was done + function: was_done +``` + +### simple.py—Python file with functions + +```{#simple.py} +def precond(ctx): + pass +def do(ctx): + pass +def was_done(ctx): + pass +``` + +## Two scenarios in the same markdown file +## A scenario step fails +## diff --git a/fable-arch.yaml b/fable-arch.yaml index fb563d2..5dc8278 100644 --- a/fable-arch.yaml +++ b/fable-arch.yaml @@ -1,4 +1,4 @@ -- given: file "(?P<filename>\S+)"" containing (?P<content>.*) +- given: files (?P<md>\S+), (?P<yaml>\S+), and (?P<py>\S+) - when: I run ftt-codegen --run (?P<filename>\S+) - then: log file says scenario "(?P<name>.+)" was run - then: log file says step "(?P<keyword>given|when|then) (?P<name>.+)" was run |