jrram
asked on
How should I organize my VB.net project (classes, modules, etc.?)
I'm trying to use convert some test automation code (currently Bash shell scripting) to VB.net, but I'm having some trouble figuring out how to organize it. Shell scripting is very loose by nature, but I want to stay as close to possible to true VB.net OO principles, so I'm not sure where my code should be placed.
The system I'm testing has multiple components in it (a data extractor, a data mapper, etc). And for each of these components, there are various test scenarios that need to be run.
Currently I have all of my common test functions (logging results, checking files, defining system parameters, etc .)in classes and modules, but I'm not sure what type of file I should put the actual test scripts in?
The system I'm testing has multiple components in it (a data extractor, a data mapper, etc). And for each of these components, there are various test scenarios that need to be run.
Currently I have all of my common test functions (logging results, checking files, defining system parameters, etc .)in classes and modules, but I'm not sure what type of file I should put the actual test scripts in?
That is a great question, but I don't have a specific answer, because like shell scripting, this is kind of a "loose question" without a lot of detail. I would love to help you, so could you give me a little more detail so that I might give you suggestions?
ASKER
Ok, hopefully this helps. Let's take the data extractor that I need to test. Some of the test scenarios I have are:
Test Case #1) Test to make sure the extractor can can connect to a database.
Test Case #2) Test to make sure the appropriate errors are thrown when all needed input isn't provided
Test Case #3) Test to make sure data is pulled from source system correctly.
Each of these test cases use common functionality like connecting to a database or unzipping the software before the test begins. I have put this common functionality in "modules".
When my program starts a form is displayed which asks the user which test cases they want to run. After this is done, i want to launch each test case.
My question is should I put the code that performs each test case in a class file, a module file, or something else?:
========================== ==========
Public Class Extractor_TestCase_1
'Insert Code
End Class
and call it like:
Dim myTest as New Extractor_TestCase_1
MyTest.SomeSubOrFunction
or
Module Extractor_TestCase_1
'Insert Code
End Module
and call it like:
Extractor_TestCase_1.SomeS ubOrFuncti on
========================== ==========
I guess I'm just confused on when I should put code in a module vs. class vs. something else. I've heard that common functionality should be placed in a module, but since all of my test cases are unique, I'm not sure if this is the proper place. When I think about putting it in a class, it doesn't seem right to place it here either.
How would you approach this?
Test Case #1) Test to make sure the extractor can can connect to a database.
Test Case #2) Test to make sure the appropriate errors are thrown when all needed input isn't provided
Test Case #3) Test to make sure data is pulled from source system correctly.
Each of these test cases use common functionality like connecting to a database or unzipping the software before the test begins. I have put this common functionality in "modules".
When my program starts a form is displayed which asks the user which test cases they want to run. After this is done, i want to launch each test case.
My question is should I put the code that performs each test case in a class file, a module file, or something else?:
==========================
Public Class Extractor_TestCase_1
'Insert Code
End Class
and call it like:
Dim myTest as New Extractor_TestCase_1
MyTest.SomeSubOrFunction
or
Module Extractor_TestCase_1
'Insert Code
End Module
and call it like:
Extractor_TestCase_1.SomeS
==========================
I guess I'm just confused on when I should put code in a module vs. class vs. something else. I've heard that common functionality should be placed in a module, but since all of my test cases are unique, I'm not sure if this is the proper place. When I think about putting it in a class, it doesn't seem right to place it here either.
How would you approach this?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.