В этом примере показано, как добавить плагин в исполнителя тестов. matlab.unittest.plugins.TestRunProgressPlugin сообщения о ходе выполнения отображений о тесте. Этот плагин является частью matlab.unittest пакет. MATLAB® использует его для исполнителей тестов по умолчанию.
В файле в вашей рабочей папке создайте тестовый файл для BankAccount класс.
type BankAccountTest.mclassdef 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.