MATLAB Class-based unit tests: How to pass in variable containing data to test

3 visualizzazioni (ultimi 30 giorni)
I'm not sure how to pass in variables when executing a unit test. These variables were created from another function not placed within the unit test.
*Method 1:*
classdef myTest < matlab.unittest.TestCase
properties
A, B, C
end
methods (Test)
function testDataCoverage(testCase)
expSol = afunction(A, B, C)
actSol = 10
testCase.verifyEqual(testCase, actSol, expSol)
end
end
end
I next tried to place the variable-creating function (getData) within the unit test but encountered this error:
Concrete class myTest does not define a TestParameter property named BNew for the dataCoverage method. Either implement the property or define the class as Abstract.
*Method 2:*
classdef myTest < matlab.unittest.TestCase
properties
end
methods (Test)
function testDataCoverage(testCase)
[A, B, C] = getData()
expSol = afunction(A, B, C)
actSol = 10
testCase.verifyEqual(testCase, actSol, expSol)
end
function [A, B, C] = getData()
...code here...
end
function Sol = afunction(A, BNew, C)
...code here...
end
end
end

Risposte (1)

Jeff Miller
Jeff Miller il 14 Ago 2018
Try putting getData and afunction in a separate "methods" section--note, plain "methods", without "(Test)"--that is placed before your "methods (Test)" section

Categorie

Scopri di più su Testing Frameworks in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by