# Unit testing for components

**URL:** <https://forum.inductiveautomation.com/t/unit-testing-for-components/76158>\
**Category:** Ignition\
**Tags:** scripting, vision\
**Created:** [July 10, 2023, 7:51pm UTC](https://forum.inductiveautomation.com/t/unit-testing-for-components/76158 "2023-07-10T19:51:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Asjal\_Ahmad](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Asjal\_Ahmad](https://forum.inductiveautomation.com/u/Asjal_Ahmad)\
**Post date:** [July 10, 2023, 7:51pm UTC](https://forum.inductiveautomation.com/t/unit-testing-for-components/76158/1 "2023-07-10T19:51:24Z")

</div>

I need help simulating button clicks in Vision window unit tests using the Python unittest library. How can I programmatically trigger a button click event and verify the expected behavior?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 10, 2023, 7:57pm UTC](https://forum.inductiveautomation.com/t/unit-testing-for-components/76158/2 "2023-07-10T19:57:36Z")

</div>

Some possibilities:

[https://forum.inductiveautomation.com/search?q=java.awt.Robot%20order%3Alatest](https://forum.inductiveautomation.com/search?q=java.awt.Robot%20order%3Alatest)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 10, 2023, 8:53pm UTC](https://forum.inductiveautomation.com/t/unit-testing-for-components/76158/3 "2023-07-10T20:53:52Z")

</div>

In general though... Put as much business logic as you can in project library scripts. Accept plain native types as inputs. Then it's easy to test without relying on GUI state.
