我如何拆卸夹具在使用交互模式的TestCase obj ?

3视图(30天)
我发现 matlab.unittest.TestCase.forInteractiveUse 非常有用的开发和调试的测试用例编写的 matlab.unittest.TestCase
但是如果我使用 applyFixture 方法的测试方法 TestCase obj interattive模式 forInteractiveUse ,我怎么拆卸夹具吗?简单地删除 TestCase 不会做它,不是吗?
例如,假设我有一个这样的TestCase类:
classdeftestcase1 < matlab.unittest.TestCase
方法(测试)
函数testmethod1 (testCase)
testCase.applyFixture (thisfixture);
%,等等
结束
结束
结束
发展,我excute以下命令:
testCase = testcase1;testCase.forInteractiveUse;
然后我可以评估任何TestCase内就像一个脚本。然而,在测试方法使用 matlab.unittest.fixtures.Fixture 设置,我想这样做:
testCase.applyFixture (fixtureforthis);
然后我可以舒适的评估/调试的代码在测试方法。我的问题是我怎样才能摆脱这种状态。我怎样才能调用 拆卸 固定的方法 thisfixture 而在交互模式下?

接受的答案

Kouichi中村
Kouichi中村 2015年4月22日
实际上,删除的 testcase1 对象 testCase 并调用 teadown 方法。因此,组合使用 forInteractiveUse appyFixture 是非常有效的。

更多的答案(2)

安迪•坎贝尔
安迪•坎贝尔 2015年4月22日
你好Kouichi,
是的applyFixture关系夹具拆卸步骤testCase在它的生命周期,所以一旦删除testCase夹具确实会拆除如你所见。
然而,这条线混淆我。
testCase = testcase1;testCase.forInteractiveUse;
那是什么做的是创建一个新的实例testcase1类的,不会告诉你失败的你玩它在命令行上。例如,testCase.verifyEqual(1,0)将不会显示任何诊断desrcibe 1不等于0。
然后,testCase。forInteractiveUse调用静态方法(不使用您创建的testCase实例,它相当于matlab.unittest.TEstCase.forInteractiveUse)创建一个 testCase实例,甚至不是testcase1类型,但有正确的配置应用于显示你在命令行诊断。看来也许你正在寻找的东西第一行和第二个是真的给你。你能解释更多关于你所需要的吗?
谢谢你,安迪。

Kouichi中村
Kouichi中村 2015年4月23日
谢谢。对于我提出的问题,现在我很好与删除 testCase 对象。至少我想象。但是你指出感兴趣,因为我不满意 forInteractiveUse 实际工作。
这是可以理解的,在以下情况下, testCase 与任何无关我的自定义类。这是一个静态方法的调用。
进口matlab.unittest.TestCase;
testCase = TestCase.forInteractiveUse;
然而,我发现以下不允许我访问的属性 MyClass 类,虽然我可以使用方法 testCase.verifyEqual () 。阅读你的文章,似乎这个命令调用父类的静态方法 matlab.unittest.TestCase
testCase = MyClass.forInteractiveUse
testCase =
TestCase没有属性。
我希望能够访问的属性 MyClass (如果我不能,我不能评价我的测试代码),以及调用方法 verifyEqual 。我试着随机的照片和以下似乎为我工作。
testCase = MyClass;
testCase.forInteractiveUse;
我注意到当我运行上面的命令, testCase 的对象 MyClass 属性和 对象是另一个实例 matlab.unittest.TestCase 没有财产。
有趣的是,即使我删除 的对象 matlab.unittest.TestCase 课堂上,我仍然可以执行以下命令。怎么可能呢 testCase 在交互模式下在这种情况下吗?这很奇怪。
> >明确答
> > testCase.verifyEqual (1, 1)
互动验证通过。
> > testCase.applyFixture (myfixture);
设置myfixture作品。它生成 1 x1的对象 myfixture 类。删除这 不调用 拆卸 ,同时删除 testCase 所做的事。我用R2014a。
3评论
安迪•坎贝尔
安迪•坎贝尔 2015年10月19日
编辑:安迪•坎贝尔 2015年10月19日
R2015b的注意,你可以为自己的子类通过交互式testCase实例所需的元数据。类forInteractiveUse作为输入参数静态方法:
tc = matlab.unittest.TestCase.forInteractiveUse (? MyClass)
这允许你有互动听众放在自己的TestCase子类那样,这样你也可以调用任何辅助方法或TestCase类的属性。
享受吧!安迪

登录置评。

类别

找到更多的在基于类的单元测试帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!