Этот пример показывает, как добавить плагин к исполнителю тестов. matlab.unittest.plugins.TestRunProgressPlugin
отображает сообщения о ходе выполнения о тесте. Этот плагин является частью пакета matlab.unittest
. MATLAB® использует его для исполнителей тестов по умолчанию.
В файле в вашей рабочей папке создайте тестовый файл для класса BankAccount
.
type BankAccountTest.m
classdef BankAccountTest < matlab.unittest.TestCase % Tests the BankAccount class. methods (TestClassSetup) function addBankAccountClassToPath(testCase) p = path; testCase.addTeardown(@path,p); addpath(fullfile(matlabroot,'help','techdoc','matlab_oop',... 'examples')); end end methods (Test) function testConstructor(testCase) b = BankAccount(1234, 100); testCase.verifyEqual(b.AccountNumber, 1234, ... 'Constructor failed to correctly set account number'); testCase.verifyEqual(b.AccountBalance, 100, ... 'Constructor failed to correctly set account balance'); end function testConstructorNotEnoughInputs(testCase) import matlab.unittest.constraints.Throws; testCase.verifyThat(@()BankAccount, ... Throws('MATLAB:minrhs')); end function testDesposit(testCase) b = BankAccount(1234, 100); b.deposit(25); testCase.verifyEqual(b.AccountBalance, 125); end function testWithdraw(testCase) b = BankAccount(1234, 100); b.withdraw(25); testCase.verifyEqual(b.AccountBalance, 75); end function testNotifyInsufficientFunds(testCase) callbackExecuted = false; function testCallback(~,~) callbackExecuted = true; end b = BankAccount(1234, 100); b.addlistener('InsufficientFunds', @testCallback); b.withdraw(50); testCase.assertFalse(callbackExecuted, ... 'The callback should not have executed yet'); b.withdraw(60); testCase.verifyTrue(callbackExecuted, ... 'The listener callback should have fired'); end end end
В командной строке создайте тестовый набор, ts
, от теста BankAccountTest
.
ts = matlab.unittest.TestSuite.fromClass(?BankAccountTest);
Создайте исполнителя тестов без плагинов.
runner = matlab.unittest.TestRunner.withNoPlugins; res = runner.run(ts);
Никакой вывод не отображен.
Добавьте пользовательский плагин, TestRunProgressPlugin
.
import matlab.unittest.plugins.TestRunProgressPlugin
runner.addPlugin(TestRunProgressPlugin.withVerbosity(2))
res = runner.run(ts);
Running BankAccountTest ..... Done BankAccountTest __________
MATLAB отображает сообщения о ходе выполнения о BankAccountTest
.