How to change property behavior for a mocked object
Show older comments
I'm trying to use the mocking framework for unit tests
I'm trying to make the property of a mock object return another mock object, but the behavior object doesn't have the property
classdef MyClass
properties (GetAccess=public, SetAccess=protected)
prop1;
end
methods
function this = answer()
end
end
end
this is the mock decleration:
testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behav] = testCase.createMock(?MyClass);
% this would obciously throw an exception because the property set method is protected
mock.prop1 = "";
You cannot set the read-only property 'prop1' of MyClassMock.
% this throws an exception because the behavior object doesn't have this property
p = behav.prop1;
No appropriate method, property, or field 'prop1' for class 'matlab.mock.classes.MyClassBehavior'.
now i can't set the value of the mock object because the set access is protected
and i can't use the behavior object to change the property behavior because I can't find the propertyBehavior thing anywhere
I'm obviously missing something, but all the examples I've seen in the documentation show how to use a custom mock object with "AddedProperties"
and I could be tackling this the wrong way, but I prefer to create the mock object using the meta class
Accepted Answer
More Answers (0)
Categories
Find more on Mock Dependencies in Tests 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!