More Related Content
Similar to ユニットテストのパターンてどうやって考えれば良いの? (20)
ユニットテストのパターンてどうやって考えれば良いの?
- 20. 10. a + b < c ( 8 ΑΓઌʹղઆ )
❖ 2 2 7 ͱ͔
❖ ࡾ֯࡞͕ܗΕͳ͍ύλʔϯ
- 21. 11. a + b < c Λ 3 ճస
❖ 2 2 7, 2 7 2, 7 2 2 ͱ͔
- 22. 8. a + b == c ( 10 Λઌʹղઆͨ͠ )
❖ 2 2 4 ͱ͔
❖ ࡾ֯࡞͕ܗΕͳ͍ύλʔϯ
❖ ઢʹ͔͠ͳΒͳ͍
- 23. 9. a + b == c Λ 3 ճస
❖ 2 2 4, 2 4 2, 4 2 4 ͱ͔
- 26. 14. ֤έʔεʹظΛఴ͍͑ͯΔ͔
❖ 3 3 3 → ਖ਼ࡾ֯ܗ ͱ͔
❖ ςετίʔυͩͱવຬͨ͢
❖ ख࡞ۀͷςετΛߟ͑Δͱ͖ʹɺҊ֎ΓΕΔ
❖ ʮϢʔβΛࢀর͢Δʯ͔ܾ͠Ίͯͳ͍ͱ
ʮͰʁࢀরͯ͠Έ͚ͨͲ͜ΕͰ͓kʁʯͱͳΔ
- 30. ྨ
❖ ਖ਼ৗऴྃ ( ݁Ռ͕ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
※ ͋͘·Ͱ͕ࠓదʹ࡞ͬͨྨͰ͢
- 31. ྨ
❖ ਖ਼ৗऴྃ ( ݁Ռ͕ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
- 32. ਖ਼ৗऴྃ ( ݁Ռ͕ OK )
❖ 1. ༗ޮͳෆลࡾ֯ܗ
2. ༗ޮͳೋลࡾ֯ܗ
3. ༗ޮͳਖ਼ࡾ֯ܗ
❖ γεςϜ͕ਖ਼͘͠ಈ͍ͨ݁ՌɺOK ʹͳΔύλʔϯ
❖ ݁Ռͷछྨͱಉ͡ύλʔϯ؆୯ʹग़ͤΔ
- 33. ❖ ਖ਼ৗऴྃ ( ݁Ռ͕ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
ྨ
- 34. ਖ਼ৗऴྃ ( ݁Ռ NG )
❖ 10. a + b <
c
❖ γεςϜ͕ਖ਼͘͠ಈ͍ͨ݁ՌɺNG ʹͳΔύλʔϯ
❖ ͜Ε݁Ռͷछྨ؆୯ʹग़ͤΔ
- 35. ❖ Ex) ߪೖͨ͠ૹதͷΛΩϟϯηϧ͢Δ
❖ ਖ਼ৗऴྃ ( ݁Ռ͕ OK
)
❖ ྑ͍Α
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ ͜ͷग़ऀΩϟϯηϧΛड͚͚ͯͳ͍͔ΒͩΊͩΑ
❖ ͳ·ͷ͔ͩΒͩΊͩΑ
❖ ͲͪΒૹͷ༷ʹ݁ͨͬ·ܾ͍ͯͮجՌ
ΑΓΈͪ
ਖ਼ৗऴྃ ( OK, NG )
- 36. ❖ ਖ਼ৗऴྃ ( ݁Ռ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
ྨ
- 39. Φν 3 ͭ
Ψʔυ ຊͷॲཧ
ਖ਼ৗऴྃ ( ݁Ռ OK )
ਖ਼ৗऴྃ ( ݁Ռ NG )
ॲཧલΨʔυ
ෆลࡾ֯ܗ
ೋลࡾ֯ܗ
ਖ਼ࡾ֯ܗ
ෆཱ
Ͱͳ͍
ล͕Γͳ͍
ΑΓΈͪ
- 40. ❖ ਖ਼ৗऴྃ ( ݁Ռ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
ྨ
- 41. ڥքςετ ( 1 )
❖ 5. 0 ͕͋Δ
6. ෛͷ͕͋Δ
❖ ڍಈ͕มΘΔڥͱ྆Λૂ͏
❖ ล͕࡞Εͳ͘ͳΔͱ͜Ζ
❖ ͦͦ 0 සग़
0 ਖ਼ͷ ( ࡾ֯࡞͕ܗΕΔ )
ෛͷ
ਖ਼ৗऴྃ ( ݁Ռ͕ OK )
ະςετ
ڥ
- 42. ڥքςετ ( 1 )
❖ Ex) CSV Λొͯ͠ Web ϖʔδͷτοϓʹ͓ΒͤΛग़͢
❖ Body ͕ 2 ߦ → ͓Βͤ 1 ͭʹ 2 ϝοηʔδ
❖ Body ͕ 1 ߦ → ͓Βͤ 1 ͭʹ 1 ϝοηʔδ
❖ Body ͕ 0 ߦ → ͓ΒͤΛ࡞Βͳ͍
͕͜͜ڥք
ΑΓΈͪ
- 43. ڥքςετ ( 2 )
❖ 8. a + b ==
c
❖ 0 Έ͍ͨͳϋʔυίʔυͰͳ͘ɺϩδοΫͷڥ
❖ ෆ߸ͱ͔
if edge1 + edge2 <= edge3 {
…
͜Εૂ͍
- 44. ڥքςετ ( 2 )
❖ Ex) CSV Ͱදࣔ͢Δ͓Βͤ༗ޮ͕ࢦఆͰ͖Δ
❖ ొ ( 2021/8/31 ) ͔Β 30 ༗ޮ
❖ 2021/9/30 → ༗ޮ
❖ 2021/10/1 → ແޮ
ΑΓΈͪ
if date.plus(30).isBefore(today) || date.plus(30) == today
{
...
- 45. ❖ ਖ਼ৗऴྃ ( ݁Ռ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
ྨ
- 46. ❖ 4. ೋลࡾ֯ܗΛ 3 ճస
11. a + b < c Λ 3 ճస
9. a + b == c Λ 3 ճస
7. શ෦
0
❖ ࣮Λߟྀ ( ૾ ) ͤͣɺ༷͔ΒςετΛ࡞Δ
❖ ʮa b c ·ͣฒͼସ͑Δ͔ΒେৎʯͰͳ͍
❖ ʮ0 νΣοΫ࣮͔ͨ͠ΒେৎʯͰͳ͍
ϒϥοΫϘοΫεςετ
- 48. ❖ ਖ਼ৗऴྃ ( ݁Ռ OK
)
❖ ਖ਼ৗऴྃ ( ݁Ռ NG
)
❖ όϦσʔγϣϯ
❖ ڥքςετ
❖ ϒϥοΫϘοΫεςετ
※ ͋͘·Ͱ͕ࠓదʹ࡞ͬͨྨͰ͢
ྨ ( ࠶ܝ )
- 52. ϗϫΠτϘοΫεςετ ( 1 )
❖ ࣮Λߟྀͯ͠ςετΛߟ͑Δ
❖ if for ΫϥεߏϝιουͳͲ͔Βߟ͑Δ
❖ ʮ͋ͷॲཧΛ͏ͳΒখ֬ೝ͠Αʯ
❖ ͨͱ͑ 4 4 4.9 ͕ਖ਼ࡾ֯ͨͯͬͳʹܗΒόάൃݟ
php: is_numeric(‘4.9’
)
true
intval(‘4.9’
)
4
- 53. ϗϫΠτϘοΫεςετ ( 2 )
❖ ίʔυΧόϨοδΛͱʹςετύλʔϯΛग़͢
❖ ࣮ࡍπʔϧͰ୳͢
if edge1 + edge2 <= edge3
{
…
} else if edge1 + edge3 <= edge2
{
…
} else
{
…
}
͜͜Ұ࣮ߦ͞Εͯͳ͍ͳ
- 55. ͬͱڥքςετ ( Լݶ )
❖ ۭจࣈۭྻͷύλʔϯ
❖ औΓѻ͍ΛϛεΔͱྫ֎͕Α͘ग़Δ
❖ ۭͬΆະఆٛ 0 ͱ߹ΘͤͯԼݶͷසग़ύλʔϯ
❖ ͨͱ͑ 1 ลࢦఆ͠ͳ͍ͱྫ֎͕ग़ΔͳΒόάൃݟ
- 56. ͬͱڥքςετ ( ্ݶ )
❖ ʮेʹେ͖͍ʯͬͯɺ͍ͭͩ͘Ζ͏ʁ
❖ ʮςετͯ͠ͳ͍ʯ͔ͭʮΨʔυͯ͠ͳ͍ʯଟόάͬͯΔ
❖ ͱΓ͋͑ͣɺΦʔόʔϑϩʔΛૂͬͯΈΔͷ͕ఆ൪
❖ ͨͱ͑ 990ژ1 990ژ2 990ژ3 ͕ਖ਼ࡾ֯ͨͯͬͳʹܗΒόάൃݟ
php: intval('9900000000000000001') === intval(‘9900000000000000002')
true
java: 2_000_000_000 < 1_000_000_000 + 1_500_000_000
false
❖ ࣮ݱతʹ 99 ͱ͔ʹ্ݶΛఆΊͯΨʔυͯ͠ςετ͢Δ
- 57. Έ߹Θͤςετ
❖ ύϥϝʔλ͕૬ʹޓӨ͢ڹΔ߹ ( ༗ଇ
)
❖ Ex) ྸׂҾͱׂ࣌ؒҾͱׂ༵Ҿͷ߹Ͱܭྉ͕ܾۚ·Δ
❖ ૯ଟ͘ͳ͍͕࿙Βͤͳ͍ → σγδϣϯςʔϒϧ
❖ ύϥϝʔλ͕૬ʹޓӨ͍ͳ͠ڹͣͷ߹ ( ແଇ
)
❖ Ex) 3 ͷͱ 3 ͷܾࡁํ๏ͱ 3 ͷࠝแํ๏͕͋Δ
❖ ͨ͘͞Μࢼ͢ → ೋҼࢠؒཏ
- 59. ྨ ( ࠶ܝ )
❖ ϗϫΠτϘοΫεςετ
❖ ͬͱڥքςετ ( Լݶ
)
❖ ͬͱڥքςετ ( ্ݶ
)
❖ Έ߹Θͤςετ
❖ ঢ়ଶભҠςετ
- 64. ಉׂ
❖ Ex) ΧʔτʹΛ 100 ·ͰೖΕΒΕΔɺ4 ͭҎ্ͰׂҾ͋Γ
❖ 6 ͭͰςετͨ͠ɺ͡Ό͋ 7 ͭʁ 8 ͭʁ
❖ Ͳ͏ߟ͑ͯΩϦ͕ͳ͍
❖ ಉΫϥεͱ͍͏ಉ݁͡ՌʹͳΔͣͷάϧʔϓΛ࡞ΓɺදΛબͿ
❖ ڥքੳͱҰॹʹΔ
ׂҾͳ͠
͋Γ͑ͳ͍ ׂҾ͋Γ ڐ༰͞Εͳ͍
0 4 100
ಉάϧʔϓ 1 ಉάϧʔϓ 2
- 65. ೋҼࢠؒཏ
❖ Ex) 3 ͷͱ 3 ͷܾࡁํ๏ͱ 3 ͷࠝแํ๏͕͋Δ
❖ ͳͲɺύϥϝʔλΛҼࢠͱ͍͏ ( ਫ४ͱ͍͏
)
❖ ҼࢠΛ 2 ͚ͭͩͨݟ߹ʹɺશϖΞΛग़ͤ͞ݱΔ͜ͱ
❖ ೋҼࢠؒͰେମͷόά͕ग़Δɺͱ͍͏͍ݹจ͕͋Δ
❖ ຬͨ͢ํ๏͕ɺ૯ͨΓͷଞʹ͍͔ͭ͋͘Δ
- 66. ❖ ͋Δ 2 ྻ͚ͩΛͨݟ߹ʹɺશͯͷϖΞ͕ग़͍ͯ͠ݱΔ
ೋҼࢠؒཏ ( Pairwise ๏ )
ࡐ ࢧ͍ํ๏ ࠝแࢦఆ
1 A Y
1 B Z
1 C X
2 A Z
2 B X
2 C Y
3 A X
3 B Y
3 C Z