Tag: unit testing

在更新为jruby-1.7.13后,jruby中需要自制的gem失败

我使用jruby-1.7.0和测试框架工作Test :: Unit :: TestCase。 现在我更新了一些导致我使用MiniTest :: Test进行测试的gem,所以我也升级到了jruby-1.7.13。 我也有一个rake任务,用java * .class文件而不是ruby * .rb文件构建我的gem。 现在很多东西不再像’rake test’那样工作,或者需要来自irb的“my_gem_xyz”,得到像load error和ArrayIndexOutOfBoudsException这样的错误。 我安装了rvm以在ruby之间切换。 我怎样才能在jruby-1.7.0下使用自制gem中的* .class文件? (如果我在gem中包含* .rb文件,它似乎工作正常) 前段时间我尝试过使用jruby-1.7.4,但是由于类似的原因也失败了(当时我还是使用了Test :: Unit :: TestCase,所以测试帧工作不是问题) 有任何想法吗? 坦率

Rubyunit testing:这是一个有效(格式良好)的XML Doc吗?

我正在创建一个XML文档:我想至少进行unit testing,以确保它的格式良好。 到目前为止,我只能通过使用REXML库中的’hasElements’来估算它。 有没有更好的办法 ? 最好使用内置库(我的意思是随标准Ruby 1.8.x发行版一起提供的库)。 require “test/unit” require ‘rexml/document’ require ‘test/unit/ui/console/testrunner’ include REXML class TestBasic < Test::Unit::TestCase def test_createXML my_xml=…create doc here… doc = Document.new(my_xml); assert(doc.has_elements?); end end Test::Unit::UI::Console::TestRunner.run(TestBasic);

Ruby minitest assert_output语法

我是minitest的新手,对ruby来说仍然是新人,并且真的厌倦了尝试google这个问题而没有结果。 我真的很感激你的帮助: ruby minitest中assert_output的确切语法是什么? 我在github或其他地方找到的所有内容似乎都使用括号。 然而,当我不使用带有assert_output的块时,我收到一条错误消息,这是有意义的,因为此方法的定义包含yield语句。 但无论我尝试什么,我都无法使它发挥作用。 testclass.rb class TestClass def output puts ‘hey’ end end test_test.rb require ‘minitest/spec’ require ‘minitest/autorun’ require_relative ‘testclass’ class TestTestClass < MiniTest::Unit::TestCase def setup @test = TestClass.new end def output_produces_output assert_output( stdout = 'hey' ) { @test.output} end end 我得到的是: 完成0.000000s的测试,NaN测试/ s,NaN断言 0次测试,0次断言,0次失败,0次错误,0次跳过 我究竟做错了什么? 它必须是非常明显的东西,但我无法弄清楚。 谢谢你的帮助。

使用Ruby minitest创建测试套件

我正在将我的测试移动到新的ruby minitest库,我正在寻找与旧的Test :: Unit :: TestSuite类相对应的类。 我在网上找到的所有例子都显示了单个测试用例,但我得到了: require ‘minitest/unit/testsuite’ require ‘minitest/unit/ui/console/testrunner’ require ‘tests/fs_session_test’ require ‘tests/resource_test’ require ‘tests/rest_session_test’ require ‘tests/server_test’ class AllTests def self.suite suite = Test::Unit::TestSuite.new suite << FSSessionTest.suite suite << ResourceTest.suite suite << RESTSessionTest.suite suite << ServerTest.suite end end Test::Unit::UI::Console::TestRunner.run(AllTests) 我一直在testsuite require上得到一个LoadError。

如何在ruby模块中包含unit testing?

我正在尝试将模块的unit testing包含在与模块本身相同的源文件中,遵循Perl modulino模型。 #! /usr/bin/env ruby require ‘test/unit’ module Modulino def modulino_function return 0 end end class ModulinoTest < Test::Unit::TestCase include Modulino def test_modulino_function assert_equal(0, modulino_function) end end 现在,我可以运行执行此源文件的unit testing。 但是 ,当我需要/从另一个脚本加载它们时,它们也会运行。 如何避免这种情况? 有没有更惯用的方法来实现这一点,除非这种做法不鼓励?

如何使用Ruby minitest框架调用某些方法?

我想测试一个函数是否使用minitest Ruby正确调用其他函数,但我找不到一个适当的assert来测试doc 。 源代码 class SomeClass def invoke_function(name) name == “right” ? right () : wrong () end def right #… end def wrong #… end end 测试代码: describe SomeClass do it “should invoke right function” do # assert right() is called end it “should invoke other function” do # assert wrong() is called end […]

Ruby存在C1代码覆盖率分析吗?

我目前正在使用Rcov为我正在开发的rails项目获取C0代码覆盖率分析。 然而,这些结果实际上毫无意义 – 根据rcov,我有100%的覆盖率(因为它仅涵盖C0分析),而且我几乎没有为目前存在的function编写一半的测试用例。 我已经习惯了Visual Studio 2008 Team中的代码覆盖率的有用结果,它具有C1覆盖率。 是否有任何工具可以为ruby提供类似的覆盖范围?

什么是社区首选的Rubyunit testing框架?

在Java领域,JUnit主要用于.NET,我相信nUnit非常受欢迎。 社区是否同意Ruby世界的unit testing框架? 背景:我问,因为我是Ruby的新手,并希望在学习Ruby的同时练习TDD。 到目前为止,我只玩过Test :: Unit。

测试使用ActiveRecord的问题/模块

场景我提取了一个名为Taggable 。 它是一个允许任何模型支持标记的模块。 我已将此问题/模块包含在User , Location , Location , Projects 。 我想为这个模块编写测试,但不知道从哪里开始。 题 1.我可以对Taggable问题进行隔离测试吗? 在下面的示例中,测试失败,因为测试正在查找dummy_class table 。 我假设它正在这样做是因为Taggable中的has_many代码,因此它希望’DummyClass’成为ActiveRecord对象。 # /app/models/concerns/taggable.rb module Taggable extend ActiveSupport::Concern included do has_many :taggings, :as => :taggable, :dependent=> :destroy has_many :tags, :through => :taggings end def tag(name) name.strip! tag = Tag.find_or_create_by_name(name) self.taggings.find_or_create_by_tag_id(tag.id) end end # /test/models/concerns/taggable_test.rb require ‘test_helpers’ class DummyClass end […]

在Ruby中,如何控制Test :: Unit测试的运行顺序?

例如,运行这些测试时,我想确保test_fizz始终先运行。 require ‘test/unit’ class FooTest < Test::Unit::TestCase def test_fizz puts "Running fizz" assert true end def test_bar puts "Running bar" assert true end end 更新 :我为什么要这样做? 我的想法是某些测试的早期失败(那些测试更简单,更基本的方法)将使得更容易追踪系统中的问题。 例如, bar的成功取决于fizz正常工作。 如果fizz被打破了,我想知道这一点,因为没有必要担心bar ,它也会失败,但测试结果的输出要复杂得多。