I have written a Date class, which adds/subtracts days/months/years taking into consideration leap years. I now need to write a test program with hard coded data to test my implementation. The easiest way would be to create a "reference" date and then have a loop which takes it forward one day at a time, over say a 3 year period (including a leap year) and then print out the reference date together with some other dates constructed relatively from it. I haven't got a lot of java experience so I am wondering how I would actually do this?
2
There are 2 best solutions below
0
k3b
On
to loop through the dates by adding 1 day would work but in my opinion it is to complicated. Having a few examples would be enough:
(pseudo code) for leap year
// assuming 1996-02-28 is a leap year which i have not verified
MyDate feb28th = createDate("1996-02-28");
feb28th.addDays(1);
AssertEquals("1996-02-29", feb28th.toString());
(pseudo code) for non leap year
MyDate feb28th = createDate("1997-02-28");
feb28th.addDays(1);
AssertEquals("1997-03-01", feb28th.toString());
maybe you also need one test for every special cases like
- "not every 400 years"
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in LOOPS
- how to create Infinite Upgrades in a clicker game
- How do I write a loop in F# such that the value of a in the previous step is now assigned to b and so on?
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Having issues getting the correct output with hi low game
- Pine Script: Loop Through Input Price levels & set Alerts for Each Price
- How to iteratively create matrices/vectors from columns/unique row values of dataframe, and pass them to subsequent code?
- Loop through multiple levels of a variable in R
- Matching hundreds non-adjaccent keywords in large text corpus in Python
- Reversing a number in Python
- How do I add a loop into this macro to repeat 'x' amount of times
- Optimising my C loop for a combinatorial problem
- Iterate over items in one array and groups of items in second array
- Cannot borrow variable as mutable within loop
- Taking all numbers from an arraylist and outputting only the even numbers
- Iterating through a string of long characters R
Related Questions in TESTING
- Using ES Modules with TS, and Jest testing(cannot use import statement outside module)
- Mocking AmazonS3 listObjects function in scala
- How to refer to the filepath of test data in test sourcecode?
- No tests found for given includes: [com.bright.TwitterAnalog.AuthenticationControllerSpec.Register user with valid request](--tests filter)
- Error WebMock::NetConnectNotAllowedError in testing with stub using minitest in rails (using Faraday)
- How to use Mockito for WebClient get call?
- Jest + JavaScript ES Modules
- How to configure api http request with load testing
- How can I make asserts on outbound HTTP requests?
- higher coefficient of determination values in the testing phase compared to the training phase
- Writing test methods with shared expensive set-up
- Slow performance when testing non-local IP services with Playwright
- uiState not updating in Tests
- Incorrect implementation of calloc() introduces division by zero and how to detect it via testing?
- How to test Creating and Cancelling Subscription in ThriveCart in Test Mode
Related Questions in HARD-CODING
- Index 12 out of bounds for length 12. How can I fix this problem?
- SymmetricDS Community Edition passwords hard-coding in property files
- Is setting height and width of buttons considered hard coding?
- What exactly is hard coding?
- How can I avoid hard coding in SQL Query
- Are path templates defined using Attribute Routing considered hard coded?
- how to locate a same folder on different machines on different directory?
- How can I get a cell within a range to hardcode once the cell changes?
- How to avoid hard-coding tons of dict key strings in Python
- hardcoded ID vs query
- Avoid hardcoding messages in java classes
- How to avoid hardcoding text files in java
- String Resource in laravel programming?
- Hard coding in IOS app
- Test Program for Date class
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You don't actually need to test all those cases. Think about testing cases that represents a set.
i.e. it has no point to test a given date and the day after, as internally would behave just the same (unless we are talking about February, that has an extra day every four years).
Try to design one test per case. I'd, for example, test a random date, a month with 31 days, another with 30, February as a special case, what would happend if a
nullis passed to the function.This way, if something goes wrong, you will know easily what is going on.