{"id":18,"date":"2023-08-21T10:35:13","date_gmt":"2023-08-21T10:35:13","guid":{"rendered":"https:\/\/focuscrafttech.com\/blog\/?p=18"},"modified":"2024-05-01T06:14:04","modified_gmt":"2024-05-01T06:14:04","slug":"points-to-remember-before-writing-test-cases","status":"publish","type":"post","link":"https:\/\/focuscrafttech.com\/blog\/2023\/08\/21\/points-to-remember-before-writing-test-cases\/","title":{"rendered":"Points to remember before writing Test Cases"},"content":{"rendered":"\n    <div class=\"xs_social_share_widget xs_share_url both_content \t\tmain_content  wslu-style-2 wslu-share-box-shaped wslu-fill-colored wslu-share-m-5 wslu-none wslu-share-horizontal wslu-theme-font-yes wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t                    <li class=\"xs-share-li facebook                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_facebook\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"facebook\"\n                           data-xs-href=\"http:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;t=Points+to+remember+before+writing+Test+Cases&amp;v=3\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-facebook\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t0                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tFacebook                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t                    <li class=\"xs-share-li twitter                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_twitter\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"twitter\"\n                           data-xs-href=\"https:\/\/twitter.com\/intent\/tweet?text=Points+to+remember+before+writing+Test+Cases+https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;original_referer=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;related=xpeedstudio\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-twitter\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t0                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tTwitter                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t                    <li class=\"xs-share-li linkedin                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_linkedin\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"linkedin\"\n                           data-xs-href=\"https:\/\/www.linkedin.com\/shareArticle?url=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;title=Points+to+remember+before+writing+Test+Cases&amp;summary=&amp;source=Blog+%7C+FOCUSCRAFT+Tech+Private+Ltd&amp;mini=1\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-linkedin\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t4                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tLinkedin                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t                    <li class=\"xs-share-li pinterest                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_pinterest\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"pinterest\"\n                           data-xs-href=\"https:\/\/pinterest.com\/pin\/create\/button\/?url=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;media=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F08%2Fcropped-FCT-Logo3-azureblue-web%402x.png&amp;description=\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-pinterest\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t0                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tPinterest                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t        <\/ul>\n    <\/div> \n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>Single Responsibility Principle (SRP)<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Clear and focused tests<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">By following SRP, each unit test focuses on testing only one specific behavior or functionality of the code. This makes the test case clearer and easier to understand.<\/p>\n<\/blockquote>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Easier maintenance<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">When tests have a single responsibility, any changes or updates to the code under test will likely require only one corresponding update to the test case. This simplifies maintenance and reduces the risk of introducing errors.<\/p>\n<\/blockquote>\n\n\n\n<!--more-->\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Modularity and reusability<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Independent and well-focused tests are more likely to be reusable in other parts of the codebase, promoting modularity and reducing code duplication.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-large-font-size wp-block-paragraph\"><strong>One Assert Per Unit Test<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Clarity of test outcome<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Having a single assert per test ensures that the test&#8217;s outcome is straightforward and easy to interpret. The test passes if the assert passes and fails if the assert fails. This makes it clear what specific aspect of the code is being tested<\/p>\n<\/blockquote>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Isolation of failures<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">When a test contains multiple asserts and one of them fails, it might be challenging to pinpoint the exact cause of the failure. By having only one assert per test, it becomes easier to identify the specific condition that caused the failure<\/p>\n<\/blockquote>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Independent testing<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">&nbsp;Tests with one assert are more independent, meaning the success or failure of one assert doesn&#8217;t affect the execution of other asserts in the same test. This ensures that all relevant scenarios are tested regardless of the outcome of individual parts<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"has-text-align-center has-luminous-vivid-orange-color has-text-color wp-block-paragraph\"><strong>Wrong way of doing<\/strong><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p class=\"has-text-align-center has-vivid-green-cyan-color has-text-color wp-block-paragraph\"><strong>Correct way of doing<\/strong><\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"wp-block-preformatted\">import { assert } from '.';\ndescribe('AwesomeDate', () =&gt; {\n  it('handles date boundaries', () =&gt; {\n    let date: AwesomeDate;\n    date = new AwesomeDate('1\/1\/2015');\n    assert.equal('1\/31\/2015', date.addDays(30));\n    date = new AwesomeDate('2\/1\/2016');\n    assert.equal('2\/29\/2016', date.addDays(28));\n  });\n});<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"wp-block-preformatted\">import { assert } from '.';\ndescribe('AwesomeDate', () =&gt; {\n  it('handles 30-day months', () =&gt; {\n    const date = new AwesomeDate('1\/1\/2015');\n    assert.equal('1\/31\/2015', date.addDays(30));\n  });\n  it('handles leap year', () =&gt; {\n    const date = new AwesomeDate('2\/1\/2016');\n    assert.equal('2\/29\/2016', date.addDays(28));\n  });\n});<\/pre>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n    <div class=\"xs_social_share_widget xs_share_url both_content \t\tmain_content  wslu-style-2 wslu-share-box-shaped wslu-fill-colored wslu-share-m-5 wslu-none wslu-share-horizontal wslu-theme-font-yes wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t                    <li class=\"xs-share-li facebook                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_facebook\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"facebook\"\n                           data-xs-href=\"http:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;t=Points+to+remember+before+writing+Test+Cases&amp;v=3\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-facebook\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t0                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tFacebook                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t                    <li class=\"xs-share-li twitter                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_twitter\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"twitter\"\n                           data-xs-href=\"https:\/\/twitter.com\/intent\/tweet?text=Points+to+remember+before+writing+Test+Cases+https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;original_referer=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;related=xpeedstudio\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-twitter\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t0                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tTwitter                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t                    <li class=\"xs-share-li linkedin                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_linkedin\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"linkedin\"\n                           data-xs-href=\"https:\/\/www.linkedin.com\/shareArticle?url=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;title=Points+to+remember+before+writing+Test+Cases&amp;summary=&amp;source=Blog+%7C+FOCUSCRAFT+Tech+Private+Ltd&amp;mini=1\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-linkedin\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t4                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tLinkedin                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t                    <li class=\"xs-share-li pinterest                        wslu-no-extra-data\">\n                        <a href=\"javascript:void();\"\n                           id=\"xs_feed_pinterest\"\n                           onclick=\"xs_social_sharer(this);\"\n                           data-pid=\"18\"\n                           data-uri_hash=\"9323b73f3c833cc59a2a9df211c48da7\"\n                           data-key=\"pinterest\"\n                           data-xs-href=\"https:\/\/pinterest.com\/pin\/create\/button\/?url=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F18&amp;media=https%3A%2F%2Ffocuscrafttech.com%2Fblog%2Fwp-content%2Fuploads%2F2023%2F08%2Fcropped-FCT-Logo3-azureblue-web%402x.png&amp;description=\">\n\n                            <div class=\"xs-social-icon\">\n                                <span class=\"met-social met-social-pinterest\"><\/span>\n                            <\/div>\n\n\t\t\t\t\t\t\t\n                            <div class=\"wslu-hover-content\">\n                                <div class=\"xs-social-followers\">\n\t\t\t\t\t\t\t\t\t0                                <\/div>\n                                <div class=\"xs-social-follower-text\">\n\t\t\t\t\t\t\t\t\t                                <\/div>\n                                <div class=\"xs-social-follower-label\">\n\t\t\t\t\t\t\t\t\tPinterest                                <\/div>\n                            <\/div>\n                        <\/a>\n                    <\/li>\n\t\t\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>0 Facebook 0 Twitter 4 Linkedin 0 Pinterest Single Responsibility Principle (SRP) By following SRP, each unit test focuses on testing only one specific behavior or functionality of the code. This makes the test case clearer and easier to understand. When tests have a single responsibility, any changes or updates to the code under test &hellip; <a href=\"https:\/\/focuscrafttech.com\/blog\/2023\/08\/21\/points-to-remember-before-writing-test-cases\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Points to remember before writing Test Cases&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[7,5,6,4],"class_list":["post-18","post","type-post","status-publish","format-standard","hentry","category-unit-testing","tag-jest","tag-single-responsibility-principle","tag-test-cases","tag-unit-testing"],"_links":{"self":[{"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/posts\/18","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":2,"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":190,"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/posts\/18\/revisions\/190"}],"wp:attachment":[{"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/media?parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/categories?post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/focuscrafttech.com\/blog\/wp-json\/wp\/v2\/tags?post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}