Mock a Service class with dependencies in another Service Class Mockito
I want to Mock a Service class with dependencies in another Service Class Mockito.
UserService Class
@Service
class UserService(
val userRepository: UserRepository,
val userRoleRepository: UserRoleRepository,
val jwtGenerator: JwtGenerator,
val emailService: EmailService
)
AdminService Class
@Service
class AdminService(
val userService: UserService,
val userRepository: UserRepository,
val adminRepository: AdminRepository
)
Now I'm trying to write unit test with these classes as follows
@RunWith(MockitoJUnitRunner::class)
class AdminServiceTests
private lateinit var createAdmin: CreateAdmin
@Mock
lateinit var userRepository: UserRepository
@Mock
lateinit var userRoleRepository: UserRoleRepository
@Mock
lateinit var jwtGenerator: JwtGenerator
@Mock
lateinit var emailService: EmailService
@InjectMocks
lateinit var userService: UserService
@Mock
lateinit var userRepository: UserRepository // Conflicting declarations
@Mock
lateinit var adminRepository: AdminRepository
@InjectMocks
lateinit var adminService: AdminService
@Before
fun setup()
this.createAdmin = CreateAdmin().apply
email = "admin@gmail.com"
name = "admin"
password = "qwerty"
phone = 9873555555555
@Test
fun testCreateAdmin()
val result = adminService.createAdmin(createAdmin)
Assert.assertEquals(true, result)
Please advice how to mock the userService inside AdminService with all the four dependencies injected
spring-boot kotlin mockito
add a comment |
I want to Mock a Service class with dependencies in another Service Class Mockito.
UserService Class
@Service
class UserService(
val userRepository: UserRepository,
val userRoleRepository: UserRoleRepository,
val jwtGenerator: JwtGenerator,
val emailService: EmailService
)
AdminService Class
@Service
class AdminService(
val userService: UserService,
val userRepository: UserRepository,
val adminRepository: AdminRepository
)
Now I'm trying to write unit test with these classes as follows
@RunWith(MockitoJUnitRunner::class)
class AdminServiceTests
private lateinit var createAdmin: CreateAdmin
@Mock
lateinit var userRepository: UserRepository
@Mock
lateinit var userRoleRepository: UserRoleRepository
@Mock
lateinit var jwtGenerator: JwtGenerator
@Mock
lateinit var emailService: EmailService
@InjectMocks
lateinit var userService: UserService
@Mock
lateinit var userRepository: UserRepository // Conflicting declarations
@Mock
lateinit var adminRepository: AdminRepository
@InjectMocks
lateinit var adminService: AdminService
@Before
fun setup()
this.createAdmin = CreateAdmin().apply
email = "admin@gmail.com"
name = "admin"
password = "qwerty"
phone = 9873555555555
@Test
fun testCreateAdmin()
val result = adminService.createAdmin(createAdmin)
Assert.assertEquals(true, result)
Please advice how to mock the userService inside AdminService with all the four dependencies injected
spring-boot kotlin mockito
add a comment |
I want to Mock a Service class with dependencies in another Service Class Mockito.
UserService Class
@Service
class UserService(
val userRepository: UserRepository,
val userRoleRepository: UserRoleRepository,
val jwtGenerator: JwtGenerator,
val emailService: EmailService
)
AdminService Class
@Service
class AdminService(
val userService: UserService,
val userRepository: UserRepository,
val adminRepository: AdminRepository
)
Now I'm trying to write unit test with these classes as follows
@RunWith(MockitoJUnitRunner::class)
class AdminServiceTests
private lateinit var createAdmin: CreateAdmin
@Mock
lateinit var userRepository: UserRepository
@Mock
lateinit var userRoleRepository: UserRoleRepository
@Mock
lateinit var jwtGenerator: JwtGenerator
@Mock
lateinit var emailService: EmailService
@InjectMocks
lateinit var userService: UserService
@Mock
lateinit var userRepository: UserRepository // Conflicting declarations
@Mock
lateinit var adminRepository: AdminRepository
@InjectMocks
lateinit var adminService: AdminService
@Before
fun setup()
this.createAdmin = CreateAdmin().apply
email = "admin@gmail.com"
name = "admin"
password = "qwerty"
phone = 9873555555555
@Test
fun testCreateAdmin()
val result = adminService.createAdmin(createAdmin)
Assert.assertEquals(true, result)
Please advice how to mock the userService inside AdminService with all the four dependencies injected
spring-boot kotlin mockito
I want to Mock a Service class with dependencies in another Service Class Mockito.
UserService Class
@Service
class UserService(
val userRepository: UserRepository,
val userRoleRepository: UserRoleRepository,
val jwtGenerator: JwtGenerator,
val emailService: EmailService
)
AdminService Class
@Service
class AdminService(
val userService: UserService,
val userRepository: UserRepository,
val adminRepository: AdminRepository
)
Now I'm trying to write unit test with these classes as follows
@RunWith(MockitoJUnitRunner::class)
class AdminServiceTests
private lateinit var createAdmin: CreateAdmin
@Mock
lateinit var userRepository: UserRepository
@Mock
lateinit var userRoleRepository: UserRoleRepository
@Mock
lateinit var jwtGenerator: JwtGenerator
@Mock
lateinit var emailService: EmailService
@InjectMocks
lateinit var userService: UserService
@Mock
lateinit var userRepository: UserRepository // Conflicting declarations
@Mock
lateinit var adminRepository: AdminRepository
@InjectMocks
lateinit var adminService: AdminService
@Before
fun setup()
this.createAdmin = CreateAdmin().apply
email = "admin@gmail.com"
name = "admin"
password = "qwerty"
phone = 9873555555555
@Test
fun testCreateAdmin()
val result = adminService.createAdmin(createAdmin)
Assert.assertEquals(true, result)
Please advice how to mock the userService inside AdminService with all the four dependencies injected
spring-boot kotlin mockito
spring-boot kotlin mockito
edited Nov 13 '18 at 6:51
talex
10.5k1547
10.5k1547
asked Nov 13 '18 at 6:17
MohanrajMohanraj
190213
190213
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can create object of UserService with its dependencies as mocked objects and then use it as a dependency in AdminServiceTests.
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
1
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53274917%2fmock-a-service-class-with-dependencies-in-another-service-class-mockito%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
You can create object of UserService with its dependencies as mocked objects and then use it as a dependency in AdminServiceTests.
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
1
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
add a comment |
You can create object of UserService with its dependencies as mocked objects and then use it as a dependency in AdminServiceTests.
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
1
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
add a comment |
You can create object of UserService with its dependencies as mocked objects and then use it as a dependency in AdminServiceTests.
You can create object of UserService with its dependencies as mocked objects and then use it as a dependency in AdminServiceTests.
answered Nov 13 '18 at 6:22
krishna Murarikrishna Murari
416
416
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
1
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
add a comment |
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
1
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
krishna Murari but both services have userRepository as common dependency
– Mohanraj
Nov 13 '18 at 6:24
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
I have edited the question as you suggested please have a look and tell what to change
– Mohanraj
Nov 13 '18 at 6:30
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
@Mohanraj It would not matter you are only creating mock objects Mock - UserRepository , UserRoleRepository ,JwtGenerator , EmailService ,AdminRepository create object of UserService of above required mock objects. Then create object of AdminService with object of UserService and UserRepository ,AdminRepository as mock objects I suggest it would be a better design to create a StorageService and put all repositories inside it .
– krishna Murari
Nov 13 '18 at 6:32
1
1
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
what i am suggesting is create a simple object of UserService with its required dependencies as mocked objects . Then create object of AdminService using UserService object and other dependencies as mocked ones. You can google that how to do it. I am not familiar with kotlin . I write tests in groovy and spock.
– krishna Murari
Nov 13 '18 at 6:48
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53274917%2fmock-a-service-class-with-dependencies-in-another-service-class-mockito%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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