单元测试随着agile的流行已经家喻户晓了,这正反映了软件的一个本质特征:软件是Man-Made的,而人是不可靠的。软件出错的高频率必然导致控制
间隔的缩短。我最早是在编写matlab程序的时候独立的发现了单元测试的作用。因为matlab是弱类型的,横纵矢量也不区分,很容易犯错误,我就为每
一个matlab函数编写了测试脚本,约定了命名规范为xxx_test.m, 在测试的时候通过
can_assert来做出判断而不是输出变量内容进行人工检查。
每次作了修改的时候,运行一下can_test_all.m就自动搜索测试脚本并运行一遍。 后来xp出现了,
我也第一次听说了单元测试这回事,看来英雄所见略同吧 ^_^
单元测试可以看作是对编译器的补充。编译器只能进行语法检查(形式),而单元测试可以进行语义检查(内容),它其实维护了程序的一个语义框架。如果单元测
试程序编写出来了,即使一行业务实现代码也没编写,我们手中也已经拥有了一笔宝贵的财富,因为程序的语义已经在某种意义下确定下来了。重构一般是在维护单
元测试不变的情况下进行的。即我们发现在维护语义不变量的情况下,系统具有相当的调整余地。
坚持单元测试的另一个好处是它倾向于良好分离的模块,因为高内聚低耦合的模块才更容易进行测试。为了测试,我们会在不知不觉中在对象职责的分离上投注更多
的心力。在witrix平台中,虽然基于EasyMock提供了mock支持,在实际中却很少使用,因为模块功能一般很独立,不需要复杂的mock对象,
而对于一般的对象,eclipse有代码生成功能,可以非常轻易的生成简单的测试对象。
虽然JUnit非常流行,我们的单元测试也是基于JUnit进行的,但是我们还是进行了一个简单的封装,将JUnit框架的特定要求与具体测试代码剥离开来。具体的,测试类从
test.UnitTest继承,而不是从JUnit的TestCase继承。使用Debug.check()来做判断,而不是JUnit的assertEquals等。
class MyTest extends UnitTest{
public MyTest(String caseName){ super(caseName); }
public void testMy(){
MyObject my = new MyObject();
Object value = myObject.myFunc();
Debug.check(value.equals("aa"));
// 可以同时提供一个出错消息
Debug.check(value.equals("aa"),"myFunc return invalid : "+value);
}
public static void main(String[] args){
// 不需要IDE或者其他外部的支持就可以直接调用测试代码,将会自动输出运行时间等
UnitTest.exec(new MyTest("testMy"));
}
}
分享到:
相关推荐
好难找到了 unittest.jar
在本次的“Fibonacci_unittest:课堂活动”中,我们关注的是利用Python的unittest模块进行Fibonacci数列的单元测试,同时结合pytest工具进行覆盖率分析和生成HTML报告。这个活动旨在帮助学习者理解如何编写测试用例,...
标题提到的"unittest:一些单元测试场"可能是指包含了一些使用unittest框架编写的Python单元测试的代码库。然而,考虑到标签为"Java",这里可能是一个误解,因为unittest是Python的测试框架,而不是Java的。在Java...
Selenium测试是用Python编写的,并通过该语言的内置unittest框架运行。 定制的测试运行程序和报告程序处理样板化的Selenium设置,并将结果存储在json文件中以进行后处理。 回到顶部 设置 安装 pip install ...
Spyder单元测试项目信息建置状态 版权所有:copyright:2014 Spyder项目贡献者 描述Spyder-unittest是一个插件,该插件将流行的单元测试框架与Spyder集成在一起,使您可以运行测试套件并在IDE中查看结果。 该插件支持...
单元测试是软件开发过程中的重要环节,它允许开发者对代码的各个独立部分进行验证,确保它们按照预期工作。...在 `UnitTest-master` 压缩包中,你可能找到了示例代码和更多关于如何在实际项目中应用这些概念的教程。
这个名为"android-unittest"的项目提供了一套示例,演示了如何为Android应用程序编写和执行单元测试。下面我们将深入探讨Android应用的单元测试以及如何利用Java进行测试。 1. **JUnit4**: Android单元测试主要基于...
另一个Waf单元测试关于这是带有内置google-gtest支持的waf的unittest模块。 其中包括gtest-1.7.0,因此无需安装即可使用gtest。用法将unittest_gtest.py复制到您的项目目录中。 $ wget ...
$ helm plugin install https://github.com/lrills/helm-unittest 它将最新版本的二进制文件安装到helm插件目录中。 开始使用 在图表的.helmignore中添加tests ,并在$YOUR_CHART/tests/deployment_test.yaml创建...
如何使用 python 的 unittest 进行 bash 单元测试的最小工作示例 从python调用bash脚本并使用unittest进行单元测试的原理可以应用于其他语言/单元测试框架对。 运行脚本 src/hello.sh 运行示例单元测试 python -m ...
测试类通常继承自`unittest::.TestCase`,并包含一系列`TEST`宏定义的测试用例。例如: ```cpp #include <unittest/unittest.h> class MyMathTest : public unittest::TestCase { public: void testAdd() { int ...
【标题】"demo_android_unittest"是一个专门针对Android单元测试的示例项目,它展示了如何在Android应用开发中有效地进行单元测试。这个项目的核心目的是帮助开发者理解和实践Android平台上的单元测试技术。 【描述...
小统计API 该项目使用Node(JavaScript的运行时引擎)构建。 安装脚本 选项1:没有docker $ npm install $ npm run dev 选项2:使用Docker $ docker build -t node-development . $ docker run -it -p 3001:3001 ...
AJ_Tools_UnitTest AJ_Tools_UnitTest是最初使用4D v17 R5开发的组件。 其目的是为4D开发人员提供一种在4D中进行单元测试和部分集成测试的方法。 使其可以在开发环境中使用,但不能在生产中使用。 您可以编写单元...
UnitTest是Mathematica的精益单元测试框架。 要求 UnitTest可在Mathematica 7及更高版本中使用-它可能与旧版本兼容或不兼容。 它已在Windows,Linux和OS X上使用版本7、8、9和10进行了测试。 安装 将此存储库克隆到...
UnitTest_c 作为单例实现的简单单元测试“框架”。 概述 单元测试框架对于回归测试很有用,它提供与代码测试覆盖率成比例的对代码的置信度。 测试进度显示 宏VERBOSE_ON和VERBOSE_OFF控制在执行测试时是否显示输出...
Python单元测试 使用作为简单的IDE。 单元测试使用 。 使用终端机中的pip install coverage来pip install coverage 。 运行测试 python -m unittest ...coverage run --source=app -m unittest && coverage report
概述 这个项目与任务相关 需要为SCDCalibratePanels实现基于正向建模的单元测试。 文件夹重命名约定 $ Type $ IssueNumGithub_ $ Abbre 类型: D:缺陷 T:任务 G:桂 O:其他 发行数量 阿伯尔
标题中的“UnitTest”指的是单元测试,这是一种软件开发过程中的质量保证方法,用于验证代码的各个独立部分(单元)是否按预期工作。在这个上下文中,我们关注的是一个ASP.NET MVC(Model-View-Controller)应用程序...
7. **测试和调试**: 了解如何测试GraphQL查询和接口,以及如何使用Python的测试框架(如unittest, pytest)进行单元测试和集成测试。 8. **文档和学习资源**: 可能会有对如何使用sp-graphql的教程、API参考文档,...