polardbxengine/storage/ndb/mcc/frontend/README.unittests

102 lines
4.1 KiB
Plaintext

Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
================================================================================
Running unit tests with Dojo Object Harness (DOH)
================================================================================
1. Dojo src/sdk
--------------------------------------------------------------------------------
To get access to doh, make a src version of dojo available (softlink or
whatever) at configurator/frontend/dojo.src.
2. Source code modules and unit tests
--------------------------------------------------------------------------------
The mcc source is divided into modules with submodules that are reflected in
the directory structure. E.g., the utility module is called "mcc.util" and
resides in frontend/js/mcc/util.js. Its submodules are located in the
javascript files in the directory frontend/js/mcc/util/. Further down, in
frontend/js/mcc/util/tests, the unit test files for the util module (and its
submodules) are located.
Javascript modules (example):
mcc.util // Public interface of submodules
mcc.util.html // One out of several submodules
mcc.util.tests.util // Collection of all util unit tests
mcc.util.tests.html // Unit tests for the html submodule
Directory structure (example):
frontend->
js->
mcc->
util.js
util->
html.js
tests->
html.js
util.js
runTest.html
Tests can be run in a browser by invoking doh through "runner.js". This is
done by html files that can be opened in a browser and just redirects the
browser to the appropriate URL. These html files are locate in the tests
directories, and are called "runTest.html". Note that runTest redirects to
a url which assumes dojo is available at "dojo.src", that's why the dojo
source version should be located in a directory with the name and location
as described above.
3. Unit tests and dijit widgets
--------------------------------------------------------------------------------
Much of the code is tightly coupled to the dijit widgets, and hence hard to test
without a browser environment. Unit tests in need of a browser environment with
a document to manipulate is run with a special html page which doh sets up to
run in a separate frame. E.g., to continue the example from the previous
section, the mcc.util.html module has some code that can be tested without a
gui, and some code in need of one. The code for the gui-related unit tests is
located in two additional files:
Javascript modules (example, continued from above):
mcc.util // Public interface of submodules
mcc.util.html // One out of several submodules
mcc.util.tests.util // Collection of all util unit tests
mcc.util.tests.html // Unit tests for the html submodule
mcc.util.tests.html_gui // GUI unit tests for the html submodule
Directory structure (example, continued from above):
frontend->
js->
mcc->
util.js
util->
html.js
tests->
html.js
html_gui.js
html_gui.html
util.js
runTest.html
The mcc.util.tests.util module includes the gui related unit tests for the html
module, so opening the runTest.html in a browser will run all unit tests for the
util module, including the gui related tests.