Question
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
Expert Answer
John Michell
PhD Expert
Answered Aug 23, 2026
Mock objects are still a recent feature of MATLAB and I don't think they are practical for testing classes yet. There are still quite a few features that are lacking for sufficiantly replicating object behaviour, for instance having a mock object method call assign a value to a protected property.
The solution to the above case is to create your mock without using the meta-class instance:
testCase = matlab.mock.TestCase.forInteractiveUse; [MyClassMock, behaviour] = createMock(testCase, 'AddedProperties', "prop1", 'AddedMethods', "answer") testCase.assignOutputsWhen(get(behaviour.prop1), 'abc') p = MyClassMock.prop1
It's not ideal but I don't think there's any other option at this time. You can still test for access violations this way:
import matlab.mock.actions.ThrowException
when(set(behaviour.prop1),...
ThrowException(MException('MATLAB:class:SetProhibited',...
'You cannot set the read-only property ''prop1'' of MyClass.')))
Creating a mock from a meta-class only works for classes with abstract properties and methods.
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related mocking framework Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →