Skip to content

Commit 3cb6d0d

Browse files
committed
refactor: urlバリデーションテストをcontextで整理し、説明文を改善
1 parent 2708091 commit 3cb6d0d

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

spec/models/news_spec.rb

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,37 @@
1818
end
1919

2020
describe 'url' do
21-
it 'URL が空の場合は無効になる' do
22-
news.url = nil
23-
expect(news).not_to be_valid
24-
expect(news.errors[:url]).not_to be_empty
25-
end
21+
context '無効な場合' do
22+
it 'URL が空の場合は無効になる' do
23+
news.url = nil
24+
expect(news).not_to be_valid
25+
expect(news.errors[:url]).not_to be_empty
26+
end
2627

27-
it 'URL が重複している場合は無効になる' do
28-
create(:news, url: 'https://example.com/test')
29-
duplicate_news = build(:news, url: 'https://example.com/test')
30-
expect(duplicate_news).not_to be_valid
31-
expect(duplicate_news.errors[:url]).not_to be_empty
32-
end
28+
it 'URL が重複している場合は無効になる' do
29+
create(:news, url: 'https://example.com/test')
30+
duplicate_news = build(:news, url: 'https://example.com/test')
31+
expect(duplicate_news).not_to be_valid
32+
expect(duplicate_news.errors[:url]).not_to be_empty
33+
end
3334

34-
it 'URL形式であること' do
35-
news.url = 'invalid-url'
36-
expect(news).not_to be_valid
37-
expect(news.errors[:url]).not_to be_empty
35+
it 'URL形式でない場合は無効になる' do
36+
news.url = 'invalid-url'
37+
expect(news).not_to be_valid
38+
expect(news.errors[:url]).not_to be_empty
39+
end
3840
end
3941

40-
it 'HTTPSとHTTPを許可する' do
41-
news.url = 'https://example.com'
42-
expect(news).to be_valid
42+
context '有効な場合' do
43+
it 'HTTPSを許可する' do
44+
news.url = 'https://example.com'
45+
expect(news).to be_valid
46+
end
4347

44-
news.url = 'http://example.com'
45-
expect(news).to be_valid
48+
it 'HTTPを許可する' do
49+
news.url = 'http://example.com'
50+
expect(news).to be_valid
51+
end
4652
end
4753
end
4854

0 commit comments

Comments
 (0)