spelling
This commit is contained in:
@ -4,21 +4,21 @@ To run all tests, type
|
||||
|
||||
ruby test/test_all.rb
|
||||
|
||||
to run just a single, replace all with what you want to test. Minitest accept a -n option to run just a single test. So while developing i often write things like
|
||||
to run just a single, replace all with what you want to test. Minitest accept a -n option to run just a single test. So while developing i often write things like
|
||||
|
||||
ruby test/test_class.rb -n test_class_ops_parse
|
||||
|
||||
Notice tough the _parse at the end, while you will find no such function. The Magic (explained below) renerates three
|
||||
functions per case. Your options are _parse , _transform , or if it's really bad, _ast (this should really work when the previous two work)
|
||||
|
||||
Notice tough the "_parse" at the end, while you will find no such function. The Magic (explained below) renerates three
|
||||
functions per case. Your options are "_parse" , "_transform" , or if it's really bad, "_ast" (this should really work when the previous two work)
|
||||
|
||||
### Directories
|
||||
|
||||
Currently we have two directories for test.
|
||||
Currently we have two directories for test.
|
||||
|
||||
- unit tests map to parser modules and specify the parser rule they test
|
||||
- root test test much of the same functionality, but as root (rule) tests.
|
||||
- root test test much of the same functionality, but as root (rule) tests.
|
||||
|
||||
The root tests need to be seperate to check if seperate rules interfere with each other.
|
||||
The root tests need to be separate to check if separate rules interfere with each other.
|
||||
|
||||
Apart from just plain more tests, two additional directories are planned. One is larger tests and the other is failing tests.
|
||||
|
||||
@ -28,7 +28,7 @@ Parsing is a two step process with parslet:
|
||||
- parse takes an input and outputs hashes/arrays with basic types
|
||||
- tramsform takes the output of parse and generates an ast (as specified by the transformation)
|
||||
|
||||
A test tests both phases seperately and again together.
|
||||
A test tests both phases separately and again together.
|
||||
Each test must thus specify (as instance variables):
|
||||
- the string input
|
||||
- the parse output
|
||||
@ -37,7 +37,7 @@ Each test must thus specify (as instance variables):
|
||||
### Magic
|
||||
|
||||
Test are grouped by functionality into cases (classes) and define methods test_*
|
||||
Test cases must include ParserHelper, which includes the magic to write the 3 test methods for each
|
||||
Test cases must include ParserHelper, which includes the magic to write the 3 test methods for each
|
||||
test method. See test_basic for easy example.
|
||||
|
||||
Example:
|
||||
@ -53,6 +53,5 @@ The first three lines define the data as described above.
|
||||
The last line tells the parser what to parse. This is off couse only needed when a non-root rule is tested
|
||||
and should be left out if possible.
|
||||
|
||||
As can be seen, there are no asserts. All asserting is done by the created methods, which call
|
||||
As can be seen, there are no asserts. All asserting is done by the created methods, which call
|
||||
the check_* methods in helper.
|
||||
|
||||
|
Reference in New Issue
Block a user