我有以下的正則表達式表達式驗證電子郵件VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
意外的正則表達式的行爲
我也有以下測試功能
test "valid signup information" do
get signup_path
assert_difference 'User.count', 1 do
post users_path, params: { user: { first_name: "John",
last_name: "Doe",
email: "[email protected]",
password: "foobar123",
password_confirmation: "foobar123" } }
end
follow_redirect!
assert_template 'users/show'
assert is_logged_in?
end
然而,測試失敗只有當電子郵件被設置爲[email protected]
相同格式的作品每一個其他郵件。我看不出爲什麼。 此外,當我嘗試手動註冊後,[email protected]
地址工作完全正常。
Running via Spring preloader in process 5405
Started with run options --seed 28654
FAIL["test_valid_signup_information", UsersSignupTest, 1.127243652001198]
test_valid_signup_information#UsersSignupTest (1.13s)
"User.count" didn't change by 1.
Expected: 2
Actual: 1
test/integration/users_signup_test.rb:19:in `block in <class:UsersSignupTest>'
20/20: [=============================================================================================================================================================] 100% Time: 00:00:01, Time: 00:00:01
Finished in 1.14680s
感謝,
也許你的測試方法註冊用戶的地方,該用戶已經存在,不提高用戶數。 – linden2015
@ linden2015真的不太可能。我怎樣才能檢查數據庫的每一個單一的環境(產品,測試,開發?)謝謝 –
我不認爲你的正則表達式是問題:http://rubular.com/r/SC4XTmOwoe –