Skip to content

Commit 90b755b

Browse files
committed
test: IPアドレス検証メソッドのテストを追加(KISS/YAGNI原則)
- 重要なビジネスロジック(IPアドレス検証)のみテスト - 外部API依存の部分はテスト対象外(YAGNI) - ゼロ埋めIPアドレスが無効であることを確認(セキュリティ) - エッジケースもカバー(0.0.0.0, 255.255.255.255) テスト不要と判断した部分: - deploy.rb: CI実行自体がテスト - initialize_server.rb: dry-runオプションがテスト機能 - smart_wait_helper.rb: 実使用でテストされる 最小限だが価値のあるテストセットを維持
1 parent 9b6946f commit 90b755b

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

test/ip_validation_test.rb

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
require 'minitest/autorun'
2+
require_relative '../scripts/sakura_server_user_agent'
3+
4+
class IPValidationTest < Minitest::Test
5+
def test_valid_ip_addresses
6+
# 正常なIPアドレス
7+
assert SakuraServerUserAgent.valid_ip_address?('192.168.1.1')
8+
assert SakuraServerUserAgent.valid_ip_address?('10.0.0.1')
9+
assert SakuraServerUserAgent.valid_ip_address?('153.127.192.200')
10+
assert SakuraServerUserAgent.valid_ip_address?('8.8.8.8')
11+
end
12+
13+
def test_invalid_ip_addresses
14+
# 無効なIPアドレス
15+
refute SakuraServerUserAgent.valid_ip_address?('999.999.999.999')
16+
refute SakuraServerUserAgent.valid_ip_address?('not.an.ip.address')
17+
refute SakuraServerUserAgent.valid_ip_address?('192.168.1')
18+
refute SakuraServerUserAgent.valid_ip_address?('192.168.1.1.1')
19+
refute SakuraServerUserAgent.valid_ip_address?('')
20+
refute SakuraServerUserAgent.valid_ip_address?(nil)
21+
end
22+
23+
def test_normalize_ip_address
24+
# 正規化のテスト
25+
assert_equal '192.168.1.1', SakuraServerUserAgent.normalize_ip_address('192.168.1.1')
26+
assert_equal '10.0.0.1', SakuraServerUserAgent.normalize_ip_address('10.0.0.1')
27+
28+
# 無効な入力
29+
assert_nil SakuraServerUserAgent.normalize_ip_address('192.168.001.001') # ゼロ埋めは無効
30+
assert_nil SakuraServerUserAgent.normalize_ip_address('invalid')
31+
assert_nil SakuraServerUserAgent.normalize_ip_address(nil)
32+
assert_nil SakuraServerUserAgent.normalize_ip_address('')
33+
end
34+
35+
def test_edge_cases
36+
# エッジケース
37+
assert SakuraServerUserAgent.valid_ip_address?('0.0.0.0')
38+
assert SakuraServerUserAgent.valid_ip_address?('255.255.255.255')
39+
refute SakuraServerUserAgent.valid_ip_address?('256.1.1.1')
40+
refute SakuraServerUserAgent.valid_ip_address?('-1.1.1.1')
41+
end
42+
end

0 commit comments

Comments
 (0)