什么是单元测试的好方法,它测试脚本在执行之间维护正确数据的能力 - 脚本用Ctrl-C终止然后重新运行?是否有针对现有模块或脚本进行的任何测试,这些模块或脚本可以执行类似的操作以便进
我需要有一个使用Devise with Rails 4登录的自定义机制.所以我sign_in在他们的文档中找到了Devise的测试助手部分中的方法:
sign_in @user # sign_in(resource)
Run Code Online (Sandbox Code Playgroud)
但这是从网络上签名某人的正确方法吗?特别是,它会完成Devise在用户登录时所做的所有事情,例如记录日期/时间戳,IP地址,登录计数等吗?或者这只是为了测试目的?
我正在尝试将模块的单元测试包含在与模块本身相同的源文件中,遵循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,除非不鼓励这种做法?
在那一刻,我的所有灯具都与它们所针对的表格具有相同的名称,因为最近出现了rails的问题,似乎不可能有一个以'test'开头的灯具
有没有人知道如何使用不同的灯具名称,然后将其映射到正确的表格?
谢谢,安迪
我对我的问题感到有点难过.我使用的是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)
我找到的所有教程和示例都表明我的第一个例子应该可行.
作为一个学术练习,我想我会尝试在不加载Rails环境(或点击数据库)的情况下运行我的单元测试.
我之前已经看过这个,看起来人们谈论它已经足够了,但我找不到任何好的/当前的资源来完成它.
有没有人有关于如何做到这一点的好故事或长篇博文?
我有两个问题
1.如何在rails测试用例中存根nil对象.
2.Mock一个Active Record Abstract类
例如
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) 我是 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) 我正在尝试执行以下代码,但它给了我一个未定义的方法错误:
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 框架的文档,那里没有定义它,但我不确定。
目前我正在使用标准 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) testunit ×10
unit-testing ×5
ruby ×4
rspec ×2
activerecord ×1
devise ×1
fixtures ×1
javascript ×1
jestjs ×1
minitest ×1
mocha.js ×1
mocking ×1
module ×1
modulino ×1