Re: Using Mockito with Netbeans
Brother, you're working for the wrong company. Adding fake/senseless tests decreases the quality of the software. As a developer you are not allowed to do that. Testing the data layer against the database is the right thing to do here and you can do it in an integration test and also use JUnit for that. Then you can add the coverage produced by the integration tests to the coverage from the unit tests. As for the database, if you have a containerized application then it is easy to just use the database container you have anyway. Alternatively you could fire up an in-process in-memory database like H2 and run your integration tests against that. Ulrich Am 29.02.24 um 22:43 schrieb Greenberg, Gary: Yes, I do need to mock CRUD operations without accessing the database. As I said, code was debugged and tested with the database, but to comply with the company policy I do need to add these "fake" unit tests. I haven't used Mockito for about 10 years and don't want to spend much time to refresh my knowledge. I do hope that NB have some mocking features that will help me. *From:* Leo Donahue *Sent:* Thursday, February 29, 2024 1:29 PM *Cc:* NetBeans Mailing List *Subject:* Re: Using Mockito with Netbeans On Thu, Feb 29, 2024, 13:33 Greenberg,Gary wrote: I already have all DTO and DAO classes written and debugged. However, per company policy, unit test coverage must be no less than 75%. Right now, I have it less than 30%, because this is database driven project and to comply, I need to create tests mocking database operations. >>mocking database operations Do you mean that you need to mock CRUD in a unit test? If you create mock data in the test, you control the mock data which means you're testing a hard coded value or testing for null and the database is never used. Is that valuable? Suppose you unit test pinging the database, as in select something and it fails because the database is down, or today no permissions were granted to your test account or your test user password expired... now what. The unit test says something is broken but it may not be in your control. *From:* Pieter van den Hombergh mailto:pieter.van.den.hombe...@gmail.com>> *Sent:* Thursday, February 29, 2024 7:49 AM *Cc:* NetBeans Mailing List mailto:users@netbeans.apache.org>> *Subject:* Re: Using Mockito with Netbeans generated tests from existing classes sounds like testing after the fact. Then I would consider generating the DAOs from information available, like the database schema or the DTO classes which should be of the record type. but if you still insist, make the DAO tests inherit from a TestBase class that configures the mocked data source. If the DAO accepts the data source or a connection as dependency in the injection sense, you are good to go and can verify the proper use of the dependency by the DAO, which is the purpose of mocking. I may find some time tomorrow to come up with a more elaborate answer. Kind regards, Pieter van den Hombergh. met vriendelijke groet Pieter van den Hombergh Op do 29 feb 2024 01:40 schreef Greenberg, Gary : I am quite used to generate unit tests for my code using Netbeans Tools->Create/Update Tests. JUnit is great. However, now I need to create tests for some DAO classes where I will need to mock database access. I plan to use Mockito for that. Does Netbeans have any features automating Mockito test creation? *Gary Greenberg* Staff Software Engineer -- iSYS Software GmbH Ulrich Mayring | Full Stack Developer Technology Lab / R&D Tel: +49 (0) 89 46 23 28-0 | Fax +49 (0) 89 46 23 28-14 email: ulrich.mayr...@isys.de Grillparzerstraße 10 | D-81675 München www.isys.de Sitz der Gesellschaft: München | HRB 111760 Geschäftsführer: Stefan Fischer und Max Haller - To unsubscribe, e-mail: users-unsubscr...@netbeans.apache.org For additional commands, e-mail: users-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: Using Mockito with Netbeans
I can't help with Mockito, except to say that I use it with Netbeans all the time. I write the tests mostly from scratch. I'm not sure what Netbeans could automate beyond creating template test methods as it does now. One tip I can share, that I discovered by accident, is that Netbeans can show code coverage. I think the option is hidden if you don't have coverage enabled. We're using jacoco with maven. It will display a coverage report for the project and colorize your source files showing which lines are covered and not. Also, testcontainers is pretty cool for database integration testing. On 2/29/24 19:56, Leo Donahue wrote: https://plugins.netbeans.apache.org/?search=Mockito&nbv=21&cat= <https://plugins.netbeans.apache.org/?search=Mockito&nbv=21&cat=> On Thu, Feb 29, 2024, 16:43 Greenberg, Gary wrote: Yes, I do need to mock CRUD operations without accessing the database. As I said, code was debugged and tested with the database, but to comply with the company policy I do need to add these "fake" unit tests. I haven't used Mockito for about 10 years and don't want to spend much time to refresh my knowledge. I do hope that NB have some mocking features that will help me. *From:* Leo Donahue *Sent:* Thursday, February 29, 2024 1:29 PM *Cc:* NetBeans Mailing List *Subject:* Re: Using Mockito with Netbeans On Thu, Feb 29, 2024, 13:33 Greenberg,Gary wrote: I already have all DTO and DAO classes written and debugged. However, per company policy, unit test coverage must be no less than 75%. Right now, I have it less than 30%, because this is database driven project and to comply, I need to create tests mocking database operations. >>mocking database operations Do you mean that you need to mock CRUD in a unit test? If you create mock data in the test, you control the mock data which means you're testing a hard coded value or testing for null and the database is never used. Is that valuable? Suppose you unit test pinging the database, as in select something and it fails because the database is down, or today no permissions were granted to your test account or your test user password expired... now what. The unit test says something is broken but it may not be in your control. *From:* Pieter van den Hombergh *Sent:* Thursday, February 29, 2024 7:49 AM *Cc:* NetBeans Mailing List *Subject:* Re: Using Mockito with Netbeans generated tests from existing classes sounds like testing after the fact. Then I would consider generating the DAOs from information available, like the database schema or the DTO classes which should be of the record type. but if you still insist, make the DAO tests inherit from a TestBase class that configures the mocked data source. If the DAO accepts the data source or a connection as dependency in the injection sense, you are good to go and can verify the proper use of the dependency by the DAO, which is the purpose of mocking. I may find some time tomorrow to come up with a more elaborate answer. Kind regards, Pieter van den Hombergh. met vriendelijke groet Pieter van den Hombergh Op do 29 feb 2024 01:40 schreef Greenberg, Gary : I am quite used to generate unit tests for my code using Netbeans Tools->Create/Update Tests. JUnit is great. However, now I need to create tests for some DAO classes where I will need to mock database access. I plan to use Mockito for that. Does Netbeans have any features automating Mockito test creation? *Gary Greenberg* Staff Software Engineer
Re: Using Mockito with Netbeans
https://plugins.netbeans.apache.org/?search=Mockito&nbv=21&cat= On Thu, Feb 29, 2024, 16:43 Greenberg, Gary wrote: > Yes, I do need to mock CRUD operations without accessing the database. > As I said, code was debugged and tested with the database, but to > comply with the company policy > I do need to add these "fake" unit tests. I haven't used Mockito for about > 10 years and don't want to spend much time > to refresh my knowledge. I do hope that NB have some mocking features that > will help me. > -- > *From:* Leo Donahue > *Sent:* Thursday, February 29, 2024 1:29 PM > *Cc:* NetBeans Mailing List > *Subject:* Re: Using Mockito with Netbeans > > > On Thu, Feb 29, 2024, 13:33 Greenberg,Gary > wrote: > > I already have all DTO and DAO classes written and debugged. > However, per company policy, unit test coverage must be no less than 75%. > Right now, I have it less than 30%, because this is database driven > project and to comply, I need to create > tests mocking database operations. > > > >>mocking database operations > > Do you mean that you need to mock CRUD in a unit test? > > If you create mock data in the test, you control the mock data which means > you're testing a hard coded value or testing for null and the database is > never used. > > Is that valuable? > > Suppose you unit test pinging the database, as in select something and it > fails because the database is down, or today no permissions were granted to > your test account or your test user password expired... now what. The unit > test says something is broken but it may not be in your control. > > ---------- > *From:* Pieter van den Hombergh > *Sent:* Thursday, February 29, 2024 7:49 AM > *Cc:* NetBeans Mailing List > *Subject:* Re: Using Mockito with Netbeans > > generated tests from existing classes sounds like testing after the fact. > > Then I would consider generating the DAOs from information available, like > the database schema or the DTO classes which should be of the record type. > > but if you still insist, make the DAO tests inherit from a TestBase class > that configures the mocked data source. > If the DAO accepts the data source or a connection as dependency in the > injection sense, you are good to go and can verify the proper use of the > dependency by the DAO, which is the purpose of mocking. > > I may find some time tomorrow to come up with a more elaborate answer. > > > Kind regards, > Pieter van den Hombergh. > > > met vriendelijke groet > Pieter van den Hombergh > > Op do 29 feb 2024 01:40 schreef Greenberg, Gary >: > > I am quite used to generate unit tests for my code using Netbeans > Tools->Create/Update Tests. JUnit is great. > However, now I need to create tests for some DAO classes where I will need > to mock database access. > I plan to use Mockito for that. Does Netbeans have any features > automating Mockito test creation? > > *Gary Greenberg* > > Staff Software Engineer > > > >
Re: Using Mockito with Netbeans
Yes, I do need to mock CRUD operations without accessing the database. As I said, code was debugged and tested with the database, but to comply with the company policy I do need to add these "fake" unit tests. I haven't used Mockito for about 10 years and don't want to spend much time to refresh my knowledge. I do hope that NB have some mocking features that will help me. From: Leo Donahue Sent: Thursday, February 29, 2024 1:29 PM Cc: NetBeans Mailing List Subject: Re: Using Mockito with Netbeans On Thu, Feb 29, 2024, 13:33 Greenberg,Gary wrote: I already have all DTO and DAO classes written and debugged. However, per company policy, unit test coverage must be no less than 75%. Right now, I have it less than 30%, because this is database driven project and to comply, I need to create tests mocking database operations. >>mocking database operations Do you mean that you need to mock CRUD in a unit test? If you create mock data in the test, you control the mock data which means you're testing a hard coded value or testing for null and the database is never used. Is that valuable? Suppose you unit test pinging the database, as in select something and it fails because the database is down, or today no permissions were granted to your test account or your test user password expired... now what. The unit test says something is broken but it may not be in your control. From: Pieter van den Hombergh mailto:pieter.van.den.hombe...@gmail.com>> Sent: Thursday, February 29, 2024 7:49 AM Cc: NetBeans Mailing List mailto:users@netbeans.apache.org>> Subject: Re: Using Mockito with Netbeans generated tests from existing classes sounds like testing after the fact. Then I would consider generating the DAOs from information available, like the database schema or the DTO classes which should be of the record type. but if you still insist, make the DAO tests inherit from a TestBase class that configures the mocked data source. If the DAO accepts the data source or a connection as dependency in the injection sense, you are good to go and can verify the proper use of the dependency by the DAO, which is the purpose of mocking. I may find some time tomorrow to come up with a more elaborate answer. Kind regards, Pieter van den Hombergh. met vriendelijke groet Pieter van den Hombergh Op do 29 feb 2024 01:40 schreef Greenberg, Gary : I am quite used to generate unit tests for my code using Netbeans Tools->Create/Update Tests. JUnit is great. However, now I need to create tests for some DAO classes where I will need to mock database access. I plan to use Mockito for that. Does Netbeans have any features automating Mockito test creation? Gary Greenberg Staff Software Engineer
Re: Using Mockito with Netbeans
On Thu, Feb 29, 2024, 13:33 Greenberg,Gary wrote: > I already have all DTO and DAO classes written and debugged. > However, per company policy, unit test coverage must be no less than 75%. > Right now, I have it less than 30%, because this is database driven > project and to comply, I need to create > tests mocking database operations. > >>mocking database operations Do you mean that you need to mock CRUD in a unit test? If you create mock data in the test, you control the mock data which means you're testing a hard coded value or testing for null and the database is never used. Is that valuable? Suppose you unit test pinging the database, as in select something and it fails because the database is down, or today no permissions were granted to your test account or your test user password expired... now what. The unit test says something is broken but it may not be in your control. -- > *From:* Pieter van den Hombergh > *Sent:* Thursday, February 29, 2024 7:49 AM > *Cc:* NetBeans Mailing List > *Subject:* Re: Using Mockito with Netbeans > > generated tests from existing classes sounds like testing after the fact. > > Then I would consider generating the DAOs from information available, like > the database schema or the DTO classes which should be of the record type. > > but if you still insist, make the DAO tests inherit from a TestBase class > that configures the mocked data source. > If the DAO accepts the data source or a connection as dependency in the > injection sense, you are good to go and can verify the proper use of the > dependency by the DAO, which is the purpose of mocking. > > I may find some time tomorrow to come up with a more elaborate answer. > > > Kind regards, > Pieter van den Hombergh. > > > met vriendelijke groet > Pieter van den Hombergh > > Op do 29 feb 2024 01:40 schreef Greenberg, Gary >: > > I am quite used to generate unit tests for my code using Netbeans > Tools->Create/Update Tests. JUnit is great. > However, now I need to create tests for some DAO classes where I will need > to mock database access. > I plan to use Mockito for that. Does Netbeans have any features > automating Mockito test creation? > > *Gary Greenberg* > > Staff Software Engineer > > > >
Re: Using Mockito with Netbeans
I already have all DTO and DAO classes written and debugged. However, per company policy, unit test coverage must be no less than 75%. Right now, I have it less than 30%, because this is database driven project and to comply, I need to create tests mocking database operations. From: Pieter van den Hombergh Sent: Thursday, February 29, 2024 7:49 AM Cc: NetBeans Mailing List Subject: Re: Using Mockito with Netbeans generated tests from existing classes sounds like testing after the fact. Then I would consider generating the DAOs from information available, like the database schema or the DTO classes which should be of the record type. but if you still insist, make the DAO tests inherit from a TestBase class that configures the mocked data source. If the DAO accepts the data source or a connection as dependency in the injection sense, you are good to go and can verify the proper use of the dependency by the DAO, which is the purpose of mocking. I may find some time tomorrow to come up with a more elaborate answer. Kind regards, Pieter van den Hombergh. met vriendelijke groet Pieter van den Hombergh Op do 29 feb 2024 01:40 schreef Greenberg, Gary : I am quite used to generate unit tests for my code using Netbeans Tools->Create/Update Tests. JUnit is great. However, now I need to create tests for some DAO classes where I will need to mock database access. I plan to use Mockito for that. Does Netbeans have any features automating Mockito test creation? Gary Greenberg Staff Software Engineer
Re: Using Mockito with Netbeans
generated tests from existing classes sounds like testing after the fact. Then I would consider generating the DAOs from information available, like the database schema or the DTO classes which should be of the record type. but if you still insist, make the DAO tests inherit from a TestBase class that configures the mocked data source. If the DAO accepts the data source or a connection as dependency in the injection sense, you are good to go and can verify the proper use of the dependency by the DAO, which is the purpose of mocking. I may find some time tomorrow to come up with a more elaborate answer. Kind regards, Pieter van den Hombergh. met vriendelijke groet Pieter van den Hombergh Op do 29 feb 2024 01:40 schreef Greenberg, Gary : > I am quite used to generate unit tests for my code using Netbeans > Tools->Create/Update Tests. JUnit is great. > However, now I need to create tests for some DAO classes where I will need > to mock database access. > I plan to use Mockito for that. Does Netbeans have any features > automating Mockito test creation? > > *Gary Greenberg* > > Staff Software Engineer > > >
Using Mockito with Netbeans
I am quite used to generate unit tests for my code using Netbeans Tools->Create/Update Tests. JUnit is great. However, now I need to create tests for some DAO classes where I will need to mock database access. I plan to use Mockito for that. Does Netbeans have any features automating Mockito test creation? Gary Greenberg Staff Software Engineer