软件培训网

欢迎访问软件培训网!招生咨询电话与微信:15225191462(周老师)
软件培训网,专业解决学IT疑难杂症!

首页 > 软件测试/ 正文

自动化软件测试练习

2012-09-18 09:50:09

  为了确认游戏的功能是否正常,你需要一遍一遍地在你的游戏中输入命令。这个过程是很枯燥无味的。如果能写一小段代码用来测试你的代码岂不是更好?然后只要你对程序做了任何修改,或者添加了什么新东西,你只要「跑一下你的测试」,而这些测试能确认程序依然能正确运行。这些自动测试不会抓到所有的bug,但可以让你无需重复输入命令运行你的代码,从而为你节约很多时间。

  从这一章开始,以后的练习将不会有「你应该看到的结果」这一节,取而代之的是一个「你应该测试的东西」一节。从现在开始,你需要为自己写的所有代码写自动化测试,而这将让你成为一个更好的程序员。

  我不会试图解释为什么你需要写自动化测试。我要告诉你的是,你想要成为一个开发人员,而程序的作用是让无聊冗繁的工作自动化,测试软件毫无疑问是无聊冗繁的,所以你还是写点代码让它为你测试的更好。

  这应该是你需要的所有的解释了。因为你写单元测试的原因是让你的大脑更加强健。你读了这本书,写了很多代码让它们实现一些事情。现在你将更进一步,写出懂得你写的其他代码的代码。这个写代码测试你写的其他代码的过程将强迫你清楚的理解你之前写的代码。这会让你更清晰地了解你写的代码实现的功能及其原理,而且让你对细节的注意更上一个台阶。

  撰写 Test Case

  我们将拿一段非常简单的代码为例,写一个简单的测试,这个测试将建立在上节我们创建的项目框架上面。

  首先从你的项目框架创建一个叫做 ex47 的项目。确认该改名称的地方都有改过,尤其是 tests/ex47_tests.rb 这处不要写错。

  接下来建立一个简单的ex47/lib/game.rb 文件,里边放一些用来被测试的代码。我们现在放一个傻乎乎的小 class 进去,用来作为我们的测试对象:

class Room

attr_accessor :name, :description, :paths

def initialize(name, description)
@name = name
@description = description
@paths = {}
end

def go(direction)
@paths[direction]
end

def add_paths(paths)
@paths.update(paths)
end

end

  一旦你有了这个文件,修改你的 unit test 框架变成这样:

require 'test/unit'
require_relative '../lib/ex47'

class MyUnitTests north, :south => south})
assert_equal(center.go(:north), north)
assert_equal(center.go(:south), south)
end

def test_map()
start = Room.new("Start", "You can go west and down a hole.")
west = Room.new("Trees", "There are trees here, you can go east.")
down = Room.new("Dungeon", "It's dark down here, you can go up.")

start.add_paths({:west => west, :down => down})
west.add_paths({:east => start})
down.add_paths({:up => start})

assert_equal(start.go(:west), west)
assert_equal(start.go(:west).go(:east), start)
assert_equal(start.go(:down).go(:up), start)
end

end


Tags:初中毕业能报郑州北大青鸟吗,郑州有哪些电脑培训学校,河南郑州技校排名,郑州动漫设计编程学校有哪些,北大青鸟学费情况洛阳,网络工程师都学什么

搜索
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
热门标签
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
  • QQ交谈