标签: testunit

如何测试在运行之间提供功能的Ruby脚本?

什么是单元测试的好方法,它测试脚本在执行之间维护正确数据的能力 - 脚本用Ctrl-C终止然后重新运行?是否有针对现有模块或脚本进行的任何测试,这些模块或脚本可以执行类似的操作以便进

ruby testunit

6
推荐指数
1
解决办法
181
查看次数

如何通过Devise in Rails以编程方式登录用户

我需要有一个使用Devise with Rails 4登录的自定义机制.所以我sign_in他们的文档中找到了Devise的测试助手部分中的方法:

sign_in @user          # sign_in(resource)
Run Code Online (Sandbox Code Playgroud)

但这是从网络上签名某人的正确方法吗?特别是,它会完成Devise在用户登录时所做的所有事情,例如记录日期/时间戳,IP地址,登录计数等吗?或者这只是为了测试目的?

rspec ruby-on-rails testunit devise ruby-on-rails-4

6
推荐指数
2
解决办法
1万
查看次数

如何在ruby模块中包含单元测试?

我正在尝试将模块的单元测试包含在与模块本身相同的源文件中,遵循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
Run Code Online (Sandbox Code Playgroud)

现在,我可以运行执行此源文件的单元测试.

但是,当我需要/从另一个脚本加载它们时,它们也会运行.如何避免这种情况?

有没有更惯用的方法来实现Ruby,除非不鼓励这种做法?

ruby unit-testing module testunit modulino

5
推荐指数
1
解决办法
1239
查看次数

Rails灯具 - 定义表名?

在那一刻,我的所有灯具都与它们所针对的表格具有相同的名称,因为最近出现了rails的问题,似乎不可能有一个以'test'开头的灯具

有没有人知道如何使用不同的灯具名称,然后将其映射到正确的表格?

谢谢,安迪

unit-testing ruby-on-rails fixtures testunit

5
推荐指数
1
解决办法
860
查看次数

在测试单元2.3.0中使用"省略"功能时出错

我对我的问题感到有点难过.我使用的是ruby 1.8.7,rails 2.3.2.我正在尝试使用测试单元2.3.0中的"省略"功能.这是我的测试:

def test_create_reward_program
  omit("Pending")

  reward_program = RewardProgram.find_by_program_name("test_foo")
  assert_equal "test_foo", reward_program.program_name

end
Run Code Online (Sandbox Code Playgroud)

当我运行'rake test'时,我得到以下内容:

1) Error:
test_create_reward_program(AwardControllerTest):
Test::Unit::OmittedError: Pending
    /test/functional/award_controller_test.rb:43:in `test_create_reward_program'


148 tests, 261 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications
Run Code Online (Sandbox Code Playgroud)

0%通过

我不知道为什么它将它标记为"错误"时应将其标记为"遗漏".谁知道?

我也注意到这确实有效:

def test_create_reward_program
  omit "Pending" do
    reward_program = RewardProgram.find_by_program_name("test_foo")
    assert_equal "test_foo", reward_program.program_name
  end        
end
Run Code Online (Sandbox Code Playgroud)

我找到的所有教程和示例都表明我的第一个例子应该可行.

ruby unit-testing testunit

5
推荐指数
1
解决办法
1005
查看次数

在不加载环境或使用数据库的情况下运行Rails单元测试

作为一个学术练习,我想我会尝试在不加载Rails环境(或点击数据库)的情况下运行我的单元测试.

我之前已经看过这个,看起来人们谈论它已经足够了,但我找不到任何好的/当前的资源来完成它.

有没有人有关于如何做到这一点的好故事或长篇博文?

activerecord unit-testing ruby-on-rails testunit

5
推荐指数
1
解决办法
1956
查看次数

模拟一个Active Record抽象类以及如何在rails test :: unit/mocha中存根一个nil对象?

我有两个问题

1.如何在rails测试用例中存根nil对象.

2.Mock一个Active Record Abstract类

  1. 我有一个带有测试数据库X_test的应用程序X,现在我需要存根一个不存在的数据库y_test,它实现了Active Record对象并且是一个抽象类

例如

Y::table.find_by_email("hello@gmail.com").selected_lan["iden"]

      module Y
        class table <Base
          belongs_to:selected_lan, :class =>lan
          def self.find_by_email(iden)
           find_by_email(license_iden)
          end
        end
     end

    module Y
       class Base <ActiveRecord::Base
         self.abstract_class = true
       end
    end
Run Code Online (Sandbox Code Playgroud)

unit-testing ruby-on-rails mocking mocha.js testunit

5
推荐指数
1
解决办法
875
查看次数

使用现有 TestUnit 测试运行 RSpec 并使用 Simplecov 进行覆盖

我是 ROR 新手,想知道 Simplecov 是否为同一项目中的 TestUnit 和 RSpec 测试提供测试覆盖率?

我正在将我们在 RSpec 中编写的一些测试从独立的 Web 应用程序迁移到当前使用 TestUnit 的现有 Web 应用程序。

我知道 RSpec 和 TestUnit 可以存在于同一个项目中,但我无法看到 Simplecov 如何为这两个测试框架生成覆盖范围。

当我在命令行上运行bundle exec rake spec 时,我得到:

Coverage report generated for RSpec to /.../coverage. 0 / 0 LOC (0.0%) covered.

当我运行时,bundle exec rake test我会生成测试覆盖率。

计划是将所有内容从 TestUnit 迁移到 rspec,但由于有 400 多个测试,我们希望在迁移到 TestUnit 时 Simplecov 涵盖 TestUnit 和 RSpec 测试。

我确信我的配置一定有问题

任何帮助将非常感激!

我进行了以下设置:

--- Rakefile ---

require File.expand_path('../config/application', __FILE__)
require 'rake'
require 'simplecov'

if Rails.env == 'test' …
Run Code Online (Sandbox Code Playgroud)

rspec code-coverage ruby-on-rails testunit

5
推荐指数
1
解决办法
1673
查看次数

未定义的方法:Minitest 中的 assert_not_nil

我正在尝试执行以下代码,但它给了我一个未定义的方法错误:

require 'minitest/autorun'
require 'string_extension'

class StringExtensionTest < Minitest::Test
  def test_humanize_returns_nothing
    assert_not_nil "Yo".humanize, "humanize is returning nil."
  end
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试从 Codeschool 的 Rails 课程中执行这段代码,但似乎没有方法assert_not_nil。我还检查了 MiniTest 框架的文档,那里没有定义它,但我不确定。

ruby testunit minitest

5
推荐指数
2
解决办法
6095
查看次数

Jest 按特定路径运行测试

目前我正在使用标准 testRegex 逻辑来运行我的测试

  "jest": {
    "moduleFileExtensions": [
      "ts",
      "js"
    ],
    "transform": {
      "^.+\\.ts?$": "<rootDir>/node_modules/ts-jest/preprocessor.js",
      "^.+\\.js?$": "babel-jest"
    },
    "testRegex": "/tests/.*\\.(ts|js)$"
  }
Run Code Online (Sandbox Code Playgroud)

但我想使用特定路径分割它们

test-client   "testRegex": "/tests/client/.*\\.(ts|js)$"
test-server   "testRegex": "/tests/server/.*\\.(ts|js)$"
Run Code Online (Sandbox Code Playgroud)

我看到有一个选项 --runTestsByPath。但我找不到任何例子

欢迎反馈

更新

我尝试添加脚本

"test-client": "jest   --runTestsByPath \"tests/client/\""
Run Code Online (Sandbox Code Playgroud)

带有测试文件:tests/client/test.spec.js

但出现错误:

$ jest   --runTestsByPath "tests/client/"
No tests found
No files found in /Users/../myapp.
Make sure Jest's configuration does not exclude this directory.
Run Code Online (Sandbox Code Playgroud)

javascript testunit jestjs

5
推荐指数
2
解决办法
1万
查看次数