原文来自: http://blog.csdn.net/linhx/article/details/6424891
1. First, require the Person class itself and the Test::Unit framework:
# test/person_test.rb
require File.join(File.dirname(__FILE_ _), '..', 'app', 'person')
require 'test/unit'
2. Next, extend the framework class Test::Unit::TestCase with a class to contain the
actual tests.
这个就限制了其类或者实例方法的来源,只能使用混入。
3. Each test should be written as a method of the test class, and each test
method should begin with the prefix test.
方法命名的要求, 必须是实例方法,却方法名需要以test开头
4. Each test should make one or more assertions:
statements about the code which must be true for the code to be correct.
这一点特别容易被忽视,尤其是使用者是非常规使用的
def test_no_assert
run_command
end
def run_command
puts "hello no assert"
end
一个test方法 对应一个统计数据中的一个test(4 tests, 12 assertions, 0 failures, 0 errors, 0 skips)
以上这个的确算是一个test方法,最终的case数量也计算了这个方法,但是实际上,run_command是不会被执行的。要解决这个问题,需要加入assert语句。的确不太灵活。
5. 最后一点,不是非常肯定,打个标记,还需要分析一下ruby test unit的运行原理。
test unit运行的时候,似乎为每个test 方法都新建一个实例。 不是非常确定,因为我此处采用的是动态生成test方法。 这里出现的这个问题,有可能和 “动态生成test”本身有关系。
空口无凭,实例为证:
require "test/unit"
class TestSetupTeardown < Test::Unit::TestCase
def setup
super
puts "setup"
end
def test_1
puts "test_1"
end
def test_2
puts "test_2"
end
def teardown
super
puts "teardown"
end
end
各位看官,看输出:
$ ruby ./test_setup_teardown.rb
Loaded suite ./test_setup_teardown
Started
setup
test_1
teardown
.setup
test_2
teardown
.
Finished in 0.000203 seconds.
2 tests, 0 assertions, 0 failures, 0 errors, 0 skips
Test run options: --seed 4017
看官们,发表一下你的见解吧!
所以需要注意几个地方,
1. 当各个test的之间需要共享信息,比如保存log到一个文件时,就得注意,看使用w还是a
2. 考虑变量和常量,以及实例变量,类变量的区别和在此处的作用了。
3. 对应setup和teardown,这两个方法共享的代码块,是过程,而不是结果。 尤其是对应setup,比如通过setup获取了某个值,并不所有的test方法都公用这个值(普通的值),而是所有的代码块都运行一次setup,重新获取该值。这是初学者经常出现误解的地方。
分享到:
相关推荐
使用Test::Unit框架可以使用ruby test_name.rb进行测试用例的执行,也可以对测试用例中的特定方法进行执行ruby test_name.rb –name test_method。 ruby 查找要测试的库文件 在ruby中,查找要测试的库文件可以使用...
ruby test_file class des
MiniTest 在设计时考虑到了对 TestUnit 的兼容性,保留了大部分的 API 和用法,使得从 TestUnit 迁移到 MiniTest 成为可能,同时也消除了 TestUnit 中不必要的依赖,增强了性能。MiniTest 引入了 spec 风格的测试,...
rubyTest
本文档提到了关于Ruby编程语言的一系列知识点和资源。Ruby是一种高级的、解释型的编程语言,由松本行弘(Yukihiro "Matz" Matsumoto)于1990年代早期设计,首版发布于1995年。Ruby以其简洁的语法和高度的可读性著称...
在Ruby语言中,Test::Unit是用于编写单元测试的标准库。本文将深入探讨Ruby单元测试,特别是Test::Unit框架,并结合学习过程中的体验进行分享。 首先,Test::Unit框架是Ruby中的一个核心测试库,它为开发者提供了...
Test Driven Development in Ruby: A Practical Introduction to TDD Using Problem and Solution Domain Analysis by Bala Paranj English | 5 Apr. 2017 | ISBN: 1484226372 | 288 Pages | PDF | 5.32 MB Learn ...
Ruby Ruby Ruby Ruby Ruby Ruby
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
test-unit(Test :: Unit)是基于xUnit原理的Ruby单元测试框架。 这些最初是由极限编程软件开发方法的创建者肯特·贝克(Kent Beck)为Smalltalk的SUnit设计的。 它允许在Ruby中编写测试,检查结果和自动测试。特征...
在压缩包 "tdd-em-ruby-codigo-testunit-master" 中,我们可以期待找到一系列的 Ruby 文件,包括 `.rb` 文件,这些通常是测试和实现代码,以及可能的 `.txt` 或 `.md` 文件,它们可能是书籍章节的副本或关于每个示例...
Ruby语言教程知识点详解重点总结 章节目录 1.Ruby语言简介与安装 2.Ruby基础语法 3.数据类型与变量 4.运算符与表达式 5.控制结构 6.函数与模块 7.类与对象 8.继承与多态 9.异常处理 10.文件与I/O操作 11.Ruby标准库...
- Ruby提供了丰富的测试框架,如RSpec和Test::Unit等。 - 单元测试(Unit Testing)、集成测试(Integration Testing)。 - 调试技巧,包括使用p方法打印变量值、调试工具如byebug等。 7. **Ruby生态系统** - 宝石...
《Programming Ruby》还深入探讨了Ruby的库和框架,如ActiveRecord(用于数据库操作)、Test::Unit(单元测试框架)和Rake(构建工具)。这些工具极大地简化了Web开发和自动化任务的处理。Ruby on Rails,一个基于...
Test::Unit是Ruby对JUnit的实现,也提供了全面的测试支持。 在“Ruby测试代码7”中,我们可能会遇到如下知识点: 1. **断言**:无论使用哪个测试框架,断言都是核心部分。它们用于验证代码的行为是否符合预期。...
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
Ruby标准库非常丰富,书中可能还会涉及一些常用的库,如File和Dir类用于文件和目录操作,Net库用于网络编程,JSON和XML库用于数据序列化,以及Test::Unit和RSpec等测试框架。了解和熟练使用这些库是成为高效Ruby...
在 Ruby 1.9 和 2.1 之间,Ruby 为 minitest 提供了一个包装器,以提供与 Ruby 1.8 相同的 Test::Unit 接口。 Ruby 2.2 附带了 Test::Unit 的捆绑 gem,但这不是包装器。 对包装好的 Test::Unit 的一些测试实际上...
配置 Ruby Runtime 插件的过程包括以下几个步骤: 1. 在 Jenkins 系统配置中选择“Ruby”部分,添加你需要的 Ruby 版本。这通常包括指定版本号和 Ruby 安装路径。 2. 如果你的 Jenkins 服务器上没有安装特定版本的 ...