How to create objects in JUnit tests from abstract class












2















I hava an abstract class Printers and I just want to test its equals method but when I create two Printers in PrintersTest, I cannot instatiate them.



This is PrintersTest:



import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class PrintersTest {

@Test
void testEqualsObject() {
Printers a = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
Printers b = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
assertEquals(a,b);
}
}


and this is the Printers class:



import java.util.Objects;

public abstract class Printers {
protected String brand;
protected String model;
protected String pages;
protected String price;

public Printers(String brand, String model, String pages, String price) {
super();
this.brand = brand;
this.model = model;
this.pages = pages;
this.price = price;
}

/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Printers)) {
return false;
}
Printers other = (Printers) obj;
return Objects.equals(brand, other.brand) && Objects.equals(model, other.model)
&& Objects.equals(pages, other.pages) && Objects.equals(price, other.price);
}
}


Thank you so much for your help.










share|improve this question

























  • have a look on stackoverflow.com/questions/7569444/…

    – franki3xe
    Jan 2 at 13:30











  • You have to implement it or use anonymous class.

    – NEGR KITAEC
    Jan 2 at 13:34
















2















I hava an abstract class Printers and I just want to test its equals method but when I create two Printers in PrintersTest, I cannot instatiate them.



This is PrintersTest:



import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class PrintersTest {

@Test
void testEqualsObject() {
Printers a = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
Printers b = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
assertEquals(a,b);
}
}


and this is the Printers class:



import java.util.Objects;

public abstract class Printers {
protected String brand;
protected String model;
protected String pages;
protected String price;

public Printers(String brand, String model, String pages, String price) {
super();
this.brand = brand;
this.model = model;
this.pages = pages;
this.price = price;
}

/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Printers)) {
return false;
}
Printers other = (Printers) obj;
return Objects.equals(brand, other.brand) && Objects.equals(model, other.model)
&& Objects.equals(pages, other.pages) && Objects.equals(price, other.price);
}
}


Thank you so much for your help.










share|improve this question

























  • have a look on stackoverflow.com/questions/7569444/…

    – franki3xe
    Jan 2 at 13:30











  • You have to implement it or use anonymous class.

    – NEGR KITAEC
    Jan 2 at 13:34














2












2








2








I hava an abstract class Printers and I just want to test its equals method but when I create two Printers in PrintersTest, I cannot instatiate them.



This is PrintersTest:



import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class PrintersTest {

@Test
void testEqualsObject() {
Printers a = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
Printers b = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
assertEquals(a,b);
}
}


and this is the Printers class:



import java.util.Objects;

public abstract class Printers {
protected String brand;
protected String model;
protected String pages;
protected String price;

public Printers(String brand, String model, String pages, String price) {
super();
this.brand = brand;
this.model = model;
this.pages = pages;
this.price = price;
}

/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Printers)) {
return false;
}
Printers other = (Printers) obj;
return Objects.equals(brand, other.brand) && Objects.equals(model, other.model)
&& Objects.equals(pages, other.pages) && Objects.equals(price, other.price);
}
}


Thank you so much for your help.










share|improve this question
















I hava an abstract class Printers and I just want to test its equals method but when I create two Printers in PrintersTest, I cannot instatiate them.



This is PrintersTest:



import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class PrintersTest {

@Test
void testEqualsObject() {
Printers a = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
Printers b = new Printers("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
assertEquals(a,b);
}
}


and this is the Printers class:



import java.util.Objects;

public abstract class Printers {
protected String brand;
protected String model;
protected String pages;
protected String price;

public Printers(String brand, String model, String pages, String price) {
super();
this.brand = brand;
this.model = model;
this.pages = pages;
this.price = price;
}

/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Printers)) {
return false;
}
Printers other = (Printers) obj;
return Objects.equals(brand, other.brand) && Objects.equals(model, other.model)
&& Objects.equals(pages, other.pages) && Objects.equals(price, other.price);
}
}


Thank you so much for your help.







java object junit abstract-class






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 2 at 13:31









deHaar

2,60051729




2,60051729










asked Jan 2 at 13:26









Pablo BiedmaPablo Biedma

378115




378115













  • have a look on stackoverflow.com/questions/7569444/…

    – franki3xe
    Jan 2 at 13:30











  • You have to implement it or use anonymous class.

    – NEGR KITAEC
    Jan 2 at 13:34



















  • have a look on stackoverflow.com/questions/7569444/…

    – franki3xe
    Jan 2 at 13:30











  • You have to implement it or use anonymous class.

    – NEGR KITAEC
    Jan 2 at 13:34

















have a look on stackoverflow.com/questions/7569444/…

– franki3xe
Jan 2 at 13:30





have a look on stackoverflow.com/questions/7569444/…

– franki3xe
Jan 2 at 13:30













You have to implement it or use anonymous class.

– NEGR KITAEC
Jan 2 at 13:34





You have to implement it or use anonymous class.

– NEGR KITAEC
Jan 2 at 13:34












1 Answer
1






active

oldest

votes


















2














You need to have another class extend from printers (probably you already have it) like a type of printer or whatever, then in your test class, you create a new Printer based on that class like this:



@Test
void testEqualsObject() {
Printers a = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
Printers b = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
assertEquals(a,b);
}


That will solve your problem as you will not need to instantiate Printers.






share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54007214%2fhow-to-create-objects-in-junit-tests-from-abstract-class%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    You need to have another class extend from printers (probably you already have it) like a type of printer or whatever, then in your test class, you create a new Printer based on that class like this:



    @Test
    void testEqualsObject() {
    Printers a = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
    Printers b = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
    assertEquals(a,b);
    }


    That will solve your problem as you will not need to instantiate Printers.






    share|improve this answer






























      2














      You need to have another class extend from printers (probably you already have it) like a type of printer or whatever, then in your test class, you create a new Printer based on that class like this:



      @Test
      void testEqualsObject() {
      Printers a = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
      Printers b = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
      assertEquals(a,b);
      }


      That will solve your problem as you will not need to instantiate Printers.






      share|improve this answer




























        2












        2








        2







        You need to have another class extend from printers (probably you already have it) like a type of printer or whatever, then in your test class, you create a new Printer based on that class like this:



        @Test
        void testEqualsObject() {
        Printers a = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        Printers b = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        assertEquals(a,b);
        }


        That will solve your problem as you will not need to instantiate Printers.






        share|improve this answer















        You need to have another class extend from printers (probably you already have it) like a type of printer or whatever, then in your test class, you create a new Printer based on that class like this:



        @Test
        void testEqualsObject() {
        Printers a = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        Printers b = new Bw("BW_LASER HP", "Laserjet 1230", "25", "180 euros");
        assertEquals(a,b);
        }


        That will solve your problem as you will not need to instantiate Printers.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Jan 2 at 13:39









        Pablo Biedma

        378115




        378115










        answered Jan 2 at 13:35









        Irina CrabbsIrina Crabbs

        637




        637
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54007214%2fhow-to-create-objects-in-junit-tests-from-abstract-class%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            Npm cannot find a required file even through it is in the searched directory