Description des tests les plus midites et non latins
Question
Ruby 1.9 a obtenu un support cool Unicode, oui?
# encoding: utf-8
require 'minitest/spec'
require 'minitest/autorun'
describe "test" do
it "α β γ δ & a b c d" do
(1+1).must_equal 3
end
end
# 1) Failure:
# test_0001__a_b_c_d(TestSpec) [test.rb:7]:
# Expected 3, not 2.
Où sont mes lettres non latines? Je devrais toujours écrire mes tests dans mon horrible anglais?
Parce que je peux définir des méthodes avec n'importe quel symbole Unicode:
def α_β_γ_δ_a_b_c_d
puts "geeeek"
end
α_β_γ_δ_a_b_c_d
#=> "geeeek"
Ps Ma question ne semble pas claire. Je veux demander comment faire la description de l'échec de Minitest pour montrer mes définitions non latines.
La solution
c'est à propos de Regexp utilisé ici. il montre des caractères UTF-8 après le patchage du singe /\W+/
avec /\s+/
.
# encoding: utf-8
require 'minitest/spec'
require 'minitest/autorun'
class MiniTest::Spec < MiniTest::Unit::TestCase
def self.it desc = "anonymous", &block
block ||= proc { skip "(no tests defined)" }
@specs ||= 0
@specs += 1
# regexp /\W+/ replaced with /\s+/
name = "test_%04d_%s" % [ @specs, desc.gsub(/\s+/, '_').downcase ]
define_method name, &block
self.children.each do |mod|
mod.send :undef_method, name if mod.public_method_defined? name
end
end
end
describe "test" do
it "α β γ δ & a b c D" do
(1+1).must_equal 3
end
end
# 1) Failure:
# test_0001_α_β_γ_δ_&_a_b_c_d(test) [forwarding.rb:24]:
# Expected: 3
# Actual: 2
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow