主要内容

创建自定义约束

此示例显示如何创建自定义约束,该定义确定给定值是否具有与预期值相同的大小。

在当前文件夹中的文件中,创建一个名为的类Hassamesizeas.这源于matlab.unittest.Constraints.Constraint.班级。类构造函数接受预期值,其大小与实际值的大小进行比较。预期值存储在ValueWithExpectedSize.财产。推荐的做法是制造的约束实现不变,所以设定财产setaccess.归因于不可变

Classdef.hassamesizeas 属性(setaccess =不可变)ValueWithExpectedSize结束方法功能约束= hassamesizeas(value)constraint.valuewithexpectedsize =值;结束结束结束

在A.方法私人访问,定义帮助方法sizematchesexpected.这决定了实际和预期值是否具有相同的大小。通过其他约束方法调用此方法。

方法(访问=私人)功能bool = sizematchesexpected(约束,实际)bool = isequal(size(实际),size(约束.valuewithexpectedsize));结束结束

从中获得的课程matlab.unittest.Constraints.Constraint.班必须覆盖满意方法。此方法必须包含比较逻辑并返回逻辑值。在A中方法块,实施满意通过调用辅助方法。如果实际尺寸和预期大小相等,则方法返回真实

方法功能BOOL = SEPTERBY(约束,实际)BOOL = CONSTRAINT.SIZMATCHESEXPAPCTED(实际);结束结束

从中获得的课程matlab.unittest.Constraints.Constraint.类也必须覆盖getdiagnosticfor方法。此方法必须评估对约束的实际值并提供a诊断对象。在这个例子中,getdiagnosticfor返回A.stringdiagnostic.对象。

方法功能DIAG = GETDIAGNOSTICFOR(约束,实际)导入matlab.unittest.diagnostics.stringdiagnostic.如果constraint.sizeMatchesexpected(实际)诊断= stringdiagnostic('Hassamesizeas通过了。);别的diag = stringdiagnostic(sprintf(......'Hassamesizeas失败。\ nactual大小:[%s] \ nexpectedsize:[%s]'......INT2STR(尺寸(实际)),......Int2str(size(constrame.valuewithexpectedsize))))));结束结束结束

Hassamesizeas类定义

这是完整的代码Hassamesizeas.班级。

Classdef.hassamesizeas 属性(setaccess =不可变)ValueWithExpectedSize结束方法功能约束= hassamesizeas(value)constraint.valuewithexpectedsize =值;结束功能BOOL = SEPTERBY(约束,实际)BOOL = CONSTRAINT.SIZMATCHESEXPAPCTED(实际);结束功能DIAG = GETDIAGNOSTICFOR(约束,实际)导入matlab.unittest.diagnostics.stringdiagnostic.如果constraint.sizeMatchesexpected(实际)诊断= stringdiagnostic('Hassamesizeas通过了。);别的diag = stringdiagnostic(sprintf(......'Hassamesizeas失败。\ nactual大小:[%s] \ nexpectedsize:[%s]'......INT2STR(尺寸(实际)),......Int2str(size(constrame.valuewithexpectedsize))))));结束结束结束方法(访问=私人)功能bool = sizematchesexpected(约束,实际)bool = isequal(size(实际),size(约束.valuewithexpectedsize));结束结束结束

测试预期大小

在命令提示符下,为交互式测试创建测试用例。

进口matlab.unittest.testcase.testcase = testcase.forinteractiveuse;

测试传递案例。

testcase.verifythat(Zeros(5),Hassamesizeas(Repmat(1,5)))
验证通过了。

测试失败的情况。

testcase.verifythat(Zeros(5),Hassamesizeas(1,5)))
验证失败。---------------------框架诊断:-------------------- hassamesizeas失败。实际尺寸:[5 5]预期提示:[1 5]

另请参阅

||||

相关主题