-
Notifications
You must be signed in to change notification settings - Fork 9
Add tests for TimeSource #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org>
- Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org>
|
Note, CI is dependent on the rosdistro PR. Alternatively, I can implement what I proposed for Windows and conditionally download and install the mockito jars if a sufficient version is not already installed on the system. |
The new dependency looks great to me, Mockito seems to be very powerful.
Maybe we should have a "vendor package" for those extra jars. |
|
Sounds good. I'll create a vendor package and refactor this PR to use it. I'm not sure about naming conventions either (I don't think Java is typically built with CMake), but I'll try to be consistent with what is already in the ros2-java project. |
|
I've created a vendor package in ros2-java/mockito_vendor#1, I'll update this PR to use it |
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
ivanpauno
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
|
I'm not sure why CI is failing... mockito_vendor appears to be cloned to the workspace, but it is not seen by rosdep or colcon 🤔 |
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
|
Looks like it was a bug with the Action action-ros-ci (ros-tooling/action-ros-ci#342). I've made a patch to the action and updated the workflow here to see if it resolves the issue 35e926e. |
That's a fun bug 😂 |
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
801bc3c to
c4e8ed7
Compare
| with: | ||
| required-ros-distributions: foxy | ||
| - uses: ros-tooling/action-ros-ci@0.0.19 | ||
| - uses: ros-tooling/action-ros-ci@master |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Notify clocks when use_sim_time parameter changes Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add unit tests for TimeSource class Introduce Mockito dependency to help with creating mock objects. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add test dependency on libmockito-java Depends on ros/rosdistro#26308 Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Minor refactor - Switch to using @mock annotation. - Cleanup Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Depend on mockito_vendor package Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Add mockito_vendor to repos file This should make CI green. Signed-off-by: Jacob Perron <jacob@openrobotics.org> * Update branch for mockito_vendor Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Also fixed what I think was a bug in ca0a225.
This change introduces a new dependency mockito, which I think is super useful for writing tests with mock objects. I've proposed a rosdep rule for it in ros/rosdistro#26308.
Note, if we want to eventually support Windows, we'll have to investigate installing the jars for mockito and its dependencies (perhaps like how we handle JUnit).
@ivanpauno
I first wanted to get your thoughts on introducing this dependency before putting more effort into supporting Windows and resolving the TODO in the CMakeLists.txt.