与matlab.mock错误。由matlab.unittest.TestRunner调用

4次浏览(最近30天)
丹尼斯。
丹尼斯。 2020年5月14日
编辑: 每•艾萨克森 2020年5月14日
你好,
在Matlab 2020a中,我注意到Matlab .mock的一个问题。如果mock方法使用了struct参数,则使用matlab.unittest.TestRunner调用TestCase/verifyCalled函数。让我们考虑下面的测试用例:
classdefsaveModelTest < matlab.unittest.TestCase & matlab.mock.TestCase
属性
模型=结构(“model_name”“TestModel”);
结束
方法(测试)
函数test1 (testCase)
(模拟、行为)= testCase.createMock (“AddedMethods”“保存”);
下面的函数确实有一个保存函数处理程序作为第三个参数。
它还运行作为参数的save(Model)函数。
saveModel (testCase.Model 1 @mock.save);
对跑步者不起作用的是:
% testCase.verifyCalled (withAnyInputs (behavior.save)……
% testCase.Model2D);
%我必须替换它与verifyThat和WasCalled工作:
进口matlab.mock.constraints.WasCalled
testCase.verifyThat (behavior.save (testCase.Model2D) WasCalled);
结束
结束
结束
如果我单独运行测试或在套件中运行,它与verifyCalled一起工作。但是,当我使用测试运行器(run(runner,suite))执行测试套件时,它却不能。我有以下错误:
错误发生在tests.test。saveModelTest/test1,它没有运行到完成。
---------
错误ID:
---------
“MATLAB: invalidType”
--------------
错误细节:
--------------
错误使用matlab.unittest.internal.diagnostics.validateRawDiagnosticInput(第6行)
预期诊断为以下类型之一:
char, string, function_handle, matlab.unittest.diagnostics.Diagnostic
而不是它的类型是struct。
错误在matlab.unittest. qualiations . qualiationeventdata中(第162行)
validateRawDiagnosticInput (rawTestDiag);
错误在matlab.unittest.internal. qualiations.qualificationdelegate /pass中(第42行)
eventData = QualificationEventData(stack, actual, constraint, marker, diagData, additionalDiagnostics, varargin{:});
错误在matlab.unittest.internal. qualiations . qualiationdelegate / qualiythat中(第86行)
委托。pass(notificationData, actual, constraint, varargin{:});
错误在matlab.unittest.qualifications。可验证/ verifyThat(第230行)
qualifyThat(可核查。VerificationDelegate,...
错误在matlab.mock。TestCase / verifyCalled(第359行)
testCase。verifyThat(行为、decoratedConstraint变长度输入宗量{:});
错误在tests.test。saveModelTest / test1(14)行
testCase.verifyCalled (withAnyInputs (behavior.save)。
希望对大家有用。
D。

答案(0)

s manbetx 845


释放

R2020a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!