The ekr-unit-test branch contains the work for #1766 
<https://github.com/leo-editor/leo-editor/issues/1766>: cover Leo with unit 
tests. Work is well along, as shown by PR #2159 
<https://github.com/leo-editor/leo-editor/pull/2159>.

In this Engineering Notebook post, I'll say a few words about converting 
the unit tests for @shadow. These unit tests are arguably the most 
important because they test the @shadow update algorithm.

The unit tests are also (by far) the most difficult to translate into 
"flat" (traditional/new) unit tests.  Indeed, the @shadow update algorithm 
uses an *actual* Leo outline as part of its data.  So the new unit tests 
must do likewise.

The *ConvertShadowTests.convert_node* script is in convertCommands.py. 
convert_node is part of a larger script that converts @test nodes from 
unitTest.leo to traditional unit tests. Doing the conversion by hand is out 
of the question. I must be free to experiment with the contents of each 
unit test. Altering tests by hand would be tedious and way error-prone.

convert_node creates nodes that pass unit tests. That's not bad, but I 
suspect that the tests aren't testing what I think they should. The only 
way to know for sure is to study what the existing unit tests do. I'll 
tweak convert_node as needed to ensure that the unit tests actually do what 
the old tests did!

*Summary*

The old unit tests use actual outline data. The new unit tests will 
recreate this data.

The old tests were *functional* tests, not coverage tests. For Leo's 
@shadow code, functional tests are much more important than coverage tests. 
However, coverage tests will act as an additional check on the unit tests.

For example, suppose I had naively assumed that all was well just because 
all the new tests passed. Coverage testing might reveal that all the new 
tests are actually the same test!

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/1d72a75c-efda-45b2-a076-26571f0f2886n%40googlegroups.com.

Reply via email to