I want to test a function in a class but it relies on the object which isn't called
Show older comments
So I have a class which calls another class then the method in the lower class. I have now moved onto unit testing this functions. In the lower class the method has a series of if statements which depends on the object. However the object isn't used when calling the function.
It would be very complicated to instantiate the upper class prior to instantiating the lower class then calling the method. So that the object is in use. Can I just call the method using the object as an input?
3 Comments
Steven Lord
on 1 Feb 2024
In the lower class the method has a series of if statements which depends on the object. However the object isn't used when calling the function.
Unless the method is a Static method, you must specify an instance of its class (which could be an instance of a subclass that inherits the method) when you call it. So your last sentence in the section I quoted doesn't make sense (again, unless the method is Static.)
If the method is Static, you can call it using the name of the class rather than an instance of the class.
BTW, the method needing to know about other classes smells like "unexploited encapsulation". Every time someone adds a new class that could be passed into this method, the method needs to be modified. That's Not a Good Thing.
Katherine
on 1 Feb 2024
Steven Lord
on 1 Feb 2024
I think you should probably show a small concrete example of what you're describing. I'm not certain I understand what your implementation is doing from this prose description. In this case, a small chunk of code may be worth at least a few hundred words.
Answers (0)
Categories
Find more on Software Development in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!