Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中在单个文件中编写多个测试函数(TDD实现)_Matlab_Unit Testing_Tdd - Fatal编程技术网

如何在Matlab中在单个文件中编写多个测试函数(TDD实现)

如何在Matlab中在单个文件中编写多个测试函数(TDD实现),matlab,unit-testing,tdd,Matlab,Unit Testing,Tdd,我有不同的测试用例来测试不同的功能。我想在一个.m文件和一个测试文件中编写所有不同的函数,以检查所有不同的测试用例 我遵循了上面的链接,但我只能看到一个函数实现了quardicsolver,但我想实现多个函数,例如计算平方和圆的面积。有人能帮我实现多个功能吗?可以找到更多关于基于功能的测试的详细信息 简单地说,要在同一个.m文件中实现多个测试,您需要一个与该文件共享名称的主函数,该主函数应聚合该文件中的所有本地测试函数(使用),然后使用从这些函数创建测试数组。每个本地测试函数应接受一个输入(一

我有不同的测试用例来测试不同的功能。我想在一个.m文件和一个测试文件中编写所有不同的函数,以检查所有不同的测试用例


我遵循了上面的链接,但我只能看到一个函数实现了quardicsolver,但我想实现多个函数,例如计算平方和圆的面积。有人能帮我实现多个功能吗?

可以找到更多关于基于功能的测试的详细信息

简单地说,要在同一个.m文件中实现多个测试,您需要一个与该文件共享名称的主函数,该主函数应聚合该文件中的所有本地测试函数(使用),然后使用从这些函数创建测试数组。每个本地测试函数应接受一个输入(一个对象)

my\u tests.m

function tests = my_tests()
    tests = functiontests(localfunctions);
end

% One test
function test_one(testCase)
    testCase.assertTrue(true)
end

% Another test
function test_two(testCase)
    testCase.assertFalse(true);
end
然后,为了运行这些测试,您需要使用并传递文件名,或者使用
run
并传递函数的输出

runtests('my_tests.m')
% or 
run(my_tests)
根据上面链接的帮助部分,您还可以创建
setup
teardown
函数,分别充当setup和teardown函数

更新


根据您的评论,如果您现在将所有测试都放在一个文件中,但希望所有其他函数(您正在测试的函数)也放在一个文件中,您可以这样做,但需要注意的是,在.m文件中定义的任何非主函数的本地函数都只能由同一文件中的其他函数访问。有关基于函数的测试的更多详细信息,请参见。

简单地说,要在同一个.m文件中实现多个测试,您需要一个与该文件共享名称的主函数,该主函数应聚合该文件中的所有本地测试函数(使用),然后使用从这些函数创建测试数组。每个本地测试函数应接受一个输入(一个对象)

my\u tests.m

function tests = my_tests()
    tests = functiontests(localfunctions);
end

% One test
function test_one(testCase)
    testCase.assertTrue(true)
end

% Another test
function test_two(testCase)
    testCase.assertFalse(true);
end
然后,为了运行这些测试,您需要使用并传递文件名,或者使用
run
并传递函数的输出

runtests('my_tests.m')
% or 
run(my_tests)
根据上面链接的帮助部分,您还可以创建
setup
teardown
函数,分别充当setup和teardown函数

更新


根据您的评论,如果您现在将所有测试都放在一个文件中,但希望所有其他函数(您正在测试的函数)也放在一个文件中,您可以这样做,但需要注意的是,在.m文件中定义的任何非主函数的本地函数都只能由同一文件中的其他函数访问。有关详细信息,请参见。

如果您对将相关函数分组到单个内聚文件感兴趣,那么您可能希望将函数设置为类。使用一个类,您可以创建单独的方法,而不是您所说的多个函数。如果您没有编写过很多面向对象的代码,那么这就是您可以在软件中完成的许多伟大而精彩(以及可怕而可怕)的事情的开始

例如,您可以这样做(请注意,这在三个单独的*.m文件中):


开始吧。

如果您有兴趣将相关函数分组到一个单一的内聚文件中,那么您可能需要考虑将函数变成一个类。使用一个类,您可以创建单独的方法,而不是您所说的多个函数。如果您没有编写过很多面向对象的代码,那么这就是您可以在软件中完成的许多伟大而精彩(以及可怕而可怕)的事情的开始

例如,您可以这样做(请注意,这在三个单独的*.m文件中):


开始吧。

如果您以quadraticSolver.m为例,那么从上面的链接实现多个函数怎么样。有一个函数可以解二次方程,我想加上另一个函数来计算正方形的面积。我想实现不同的函数并通过测试中的值file@vinaykv什么?我刚刚向您展示了如何做,并向您展示了确定如何做的正确链接。在我的示例中,
test\u one
test\u two
是两个不同的测试函数。@vinaykv您还对什么部分感到困惑?我得到了添加的测试用例,但我想在上面链接的quadraticSolver.m文件中添加更多函数,就像另一个函数一样,以计算平方作为生成根的quadraticSolver。@vinaykv它们提供的示例中的
quadricSolver.m
文件只是一个普通的
.m
文件,您将使用一组测试对其进行测试。如果要添加更多函数,请创建更多
.m
文件。如果将它们设为同一文件的子函数,则只有同一文件中的函数才能访问它们。如果您以quadraticSolver.m为例,请参阅关于如何从上述链接实现多个函数的更详细讨论。有一个函数可以解二次方程,我想加上另一个函数来计算正方形的面积。我想实现不同的函数并通过测试中的值file@vinaykv什么?我刚刚向您展示了如何做,并向您展示了确定如何做的正确链接。在我的示例中,
test\u one
test\u two
是两个不同的测试函数。@vinaykv您还对什么部分感到困惑?我得到了添加的测试用例,但我想在上面链接的quadraticSolver.m文件中添加更多函数,就像另一个函数一样,以计算平方作为生成根的quadraticSolver。@vinaykv他们提供的示例中的
quadricSolver.m
文件只是一个普通的