Modern web applications use various java-script code to provide better interactivity and responsiveness. For example, java-script libraries like 
JQuery, 
KnockoutJS, 
DurandalJS, 
RequireJS and etc. So now we need to have proper environment for test java-script code. This will be a different challenge than server side testing.
In this demo I'll show how to test small java-script code which will calculate two input values. For testing, I'll use 
QUnit, which was written by 
JQuery team to test JQuery.
Create ASP.net MVC internet application. In 
HomeController add 
Demo Action and related view.
As you can see I have used HTML5 data bindings with KnockoutJS. Add 
calculate.js file with following scripts. If you are not familiar with KnockoutJS, you can read my previous 
posts.
When a user enter 
Number1, Number2 and press Add, then calculation will happen and 
total will be shown. Run this application and try it.
Now we have to test java-script code we wrote in 
calculate.js.
Download QUnit java-script file and QUnit style-sheet file from 
QUnit site. Add those files to Scripts and Content folders appropriately.
It's better to create tests separately. So we can add a new ASP.net MVC Area called 
Test.
Add 
DemoController and 
Index action and related view. In 
Index view add refrences for QUnit style sheet and QUnit java-script files. Also we need to add 
JQuery, 
Knockout and 
calcualte.js files, because 
calculate.js file requires those java-script libraries. Also add two 
div elements, which requires for QUnit. Give 
id for those 
div elements like below.
CalculateTest.js file is the java-script file which we wrote tests. Content of 
CalculateTest.js file is like below.
The 
test function and 
equal functions are specific to QUnit. In this file there's a test scenario called 
Calculate Test. Within that, I have created 
CalculateVM and set 
num1 and 
num2 appropriately, then call 
calculate function. After that, test whether 
total is correct or not. Run the application and go to 
/Test/Demo/. Result will be like below.
Now change expected value as 31.
Then result will have errors.
You can find the source of this demo in 
GitHub.
 
No comments:
Post a Comment