Nice TWiki > Doc > DevelopmentTools > UnitTesting (r1.7) TWiki webs:
Dev | Doc | Main | TWiki | Sandbox
Doc . { Changes | Index | Search | Go }


The basic idea is that you write test methods inline with the code you want to test.

package hello;

// Functionality of the package
public void printHello(PrintWriter w)
  // Implementation

// Now, let's test it
void _test()
  let result = new StringWriter();

  printHello(new PrintStream(s);

  assert result.toString().equals("Hello");

void _testSomethingElse()
{ ... }

Now, compile your package: nicec -a hello.jar hello. And test it: niceunit --classpath hello.jar hello. It will run every method in the package whose name starts with _test, and report errors for any that raises an assertion error or other exceptions.

(We could very simply add the functionality in nicec to start the unit tests if the compilation succeded. Should this by default be turned on or off?)

There is also an Ant task to start niceunit, and the Maven plugin automatically starts testing as needed.

Design questions

One important design specificity is that test code is close to the code it tests, typically in the same file. You could of course put it in a different file (then you won't have access to private features) or in a different package (e.g. hello.test), where you can test only public features of =hello. These three possibilities actually allow you to do, respectively, white box testing (testing the implementation, including private memebers), black box testing of the interface visible to the package, and public black box testing.

Is this good? Is this heretic? (If it's heretic, is that bad or good? :-)


It is also possible to make use of the JUnit framework. At the moment it is not very convenient to do so, but that could be helped.

A question is: is it important to make use of JUnit? There are actually two issues:

-- DanielBonniot - 18 Feb 2004

No. It's only important that there is a way to write nUnit-style tests

Yes. Acceptance. It says Nice plays well with others. -- IsaacGouy - 19 Feb 2004 武夷山 英语培训 工业设计 塑料托盘 升降机 jeans 汽车装饰 服务器租用 营销策划 网页素材 金融 纯净水设备 试验机 麻将 净化工程 生物 检验 伺服电机 测温仪 除湿设备 平台 健身器材 固态继电器 连接线 考试 添加剂 资产评估 下载 断路器 男装 移门 食品添加剂 铝塑板 重庆火锅 台布 商务礼品 屏蔽 起重 体温计 外贸软件 字画 张家界旅游 火锅 维生素 切割 麻将桌 家庭影院 药业 企业上网 工业园 非典预防 博物馆 花边 公关 筛网 步进电机驱动器 光盘 杀菌 户外广告 采购 港口 复合肥 进出口 软件学院 设计院 科技园 瘦身 德语 粉刺 模特 公关公司 国家司法考试 澳大利亚留学 景观 品牌 日语培训 解决方案 深圳翻译 家装 共享器 加盟连锁 蛋糕 设备 卫生巾 起名 体育 造粒 巧克力 中介 船舶 无线局域网 汽车修理 卫星 校园网 陀螺 调查报告 书画 绿化 电感 化妆 纯净水 皮草 网站 糖果 智能小区 毛织 网卡 鞋材 义乌 黄山旅游 钟表 电阻 毕业论文 连锁加盟 绣花 会议电视 汽车陪练 芦荟 足球贴士 护士 征婚 稻城 市场调查公司 童车 血糖 西服 三亚旅游 流量计 休闲 工商管理 真空 网络管理 软件开发 展览公司 建设 语音信箱 楼盘 速递 门禁系统 艺术学校 管理顾问 在职研究生 战略咨询 大连旅游 营销 足球推荐 光学 辅料 机房 光电 三维动画 认证咨询 巡更 快速成型 等离子 研究生 别墅 工艺 收藏 学院 家居 四川旅游 信息 时尚 度假村 实验室家具 排队机 排号机 广告制作 停车场 庆典 反渗透 商场 电子政务 拍卖 代理 防伪 人寿保险 企业形象 墨盒 饮料 中风 公寓 制服 变送器 电子显示屏 中译英 主板 主持 主持人 自助旅游 自助游 英汉互译 英文翻译 英文简历 英译汉 影视歌曲

Topic UnitTesting . { Edit | Attach | Ref-By | Printable | Diffs | r1.8 | > | r1.7 | > | r1.6 | More }
Revision r1.7 - 28 Jan 2005 - 07:03 GMT - LiYan
Parents: WebHome > DevelopmentTools
Copyright © 1999-2003 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback.