All language subtitles for 018 Shopping Cart – Part 2_en

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian Download
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,210 --> 00:00:03,900 Now that we've identified every test case, the second step is to start unit testing. 2 00:00:04,140 --> 00:00:08,970 Your first task was to set up a method annotated with before public void setup. 3 00:00:13,040 --> 00:00:18,060 And we're going to give this method of before annotation, remember that when you edited a method with 4 00:00:18,080 --> 00:00:22,910 before, then it's going to run before each test and each test is going to depend on us setting the 5 00:00:22,910 --> 00:00:25,760 cart equal to a new object of the cart class. 6 00:00:31,840 --> 00:00:36,700 Now we can start unit testing, we'll follow the order from requirements dot text, the first test case 7 00:00:36,700 --> 00:00:39,640 tells us to check if the store contains an item after it's been added. 8 00:00:42,160 --> 00:00:44,950 So I'll create a unit test named item added test. 9 00:00:55,120 --> 00:01:00,550 And here I need to research the story contains an item that was added and checking if a store contains 10 00:01:00,550 --> 00:01:03,010 an item, depends on us adding the item first. 11 00:01:03,370 --> 00:01:06,640 So we'll do that inside the before method carport add. 12 00:01:12,390 --> 00:01:13,470 Will add a new item. 13 00:01:16,730 --> 00:01:18,170 Pepsi won ninety nine. 14 00:01:24,560 --> 00:01:30,440 And we'll add another item to the shopping cart cart that add new item, Krush, also 199. 15 00:01:36,730 --> 00:01:39,040 All right, but the store doesn't have an ad method. 16 00:01:40,670 --> 00:01:44,330 So we need to go to Kadirgamar public void add. 17 00:01:54,240 --> 00:01:58,110 And the before method implies that ad should receive an object of the item class. 18 00:02:04,810 --> 00:02:09,169 And here, I guess I'll just have to add a new copy of the item object inside the array list. 19 00:02:10,039 --> 00:02:10,570 OK. 20 00:02:11,940 --> 00:02:17,050 And now how do we make sure the aid method is working as it should inside the item added unit test? 21 00:02:17,070 --> 00:02:20,760 We need to check if the cart contains the item object that was added. 22 00:02:21,150 --> 00:02:22,740 So we're going to use a true. 23 00:02:25,520 --> 00:02:28,340 To check if the cart contains the crushed object. 24 00:02:38,080 --> 00:02:43,900 This test asserts the cart contains a certain item, and now inside Staudt Java, we need to write code 25 00:02:43,900 --> 00:02:48,580 to make the test fail, something to create a public boolean method called contains. 26 00:02:52,280 --> 00:02:56,100 And here, the unit test implies that our method needs to receive an item object. 27 00:02:56,600 --> 00:03:00,830 Again, it's kind of nice that we're writing our code based on how we set up our tests. 28 00:03:01,310 --> 00:03:05,840 And here the only thing we can do is return a boolean that checks if this items. 29 00:03:10,170 --> 00:03:12,330 That contains the item parameter. 30 00:03:16,200 --> 00:03:17,780 All right, our test should fail. 31 00:03:25,210 --> 00:03:29,650 Which is fine, because that's the first step to writing a unit test and it says that it was expecting 32 00:03:29,650 --> 00:03:31,690 true, but our unit test returns false. 33 00:03:31,960 --> 00:03:35,680 So this is where you ask yourself, OK, why is the test failing? 34 00:03:38,480 --> 00:03:39,770 If you put a breakpoint here. 35 00:03:46,770 --> 00:03:51,390 You can see that the cart already contains two objects courtesy of our before method. 36 00:03:53,680 --> 00:03:59,680 The objects are equal in terms of state, their fields are equal, but remember that contains uses the 37 00:03:59,680 --> 00:04:02,470 default equals method to compare item objects. 38 00:04:02,890 --> 00:04:06,250 So it compares the reference of each item against the item parameter. 39 00:04:06,640 --> 00:04:11,510 The reference that we're passing in isn't equal to any of the references inside the array list. 40 00:04:11,890 --> 00:04:17,110 So ultimately, Java determines that the aerialist doesn't contain the object being passed in. 41 00:04:20,630 --> 00:04:26,510 But if we create our own equals method from just the item class then contains is going to use that one 42 00:04:26,510 --> 00:04:27,050 instead. 43 00:04:29,770 --> 00:04:33,280 So inside the item class, we're going to customize the equals method. 44 00:04:39,560 --> 00:04:41,540 The equals method needs to return a boolean. 45 00:04:44,880 --> 00:04:48,820 And receives an object, what's the type of that object we don't know. 46 00:04:48,840 --> 00:04:49,920 It can be any object. 47 00:04:50,430 --> 00:04:53,910 First, we're going to check if the object that we're comparing against is No. 48 00:04:55,230 --> 00:04:59,760 Because if it happens to be null, then there's no way it equals the item object that's calling this 49 00:04:59,760 --> 00:05:06,390 method, let's assume the object is it now then we need to check if it isn't of type item if the object 50 00:05:06,390 --> 00:05:08,400 isn't an instance of the item class. 51 00:05:12,220 --> 00:05:13,420 Then return false. 52 00:05:17,650 --> 00:05:23,050 OK, so at this point, the object, is it no, it is an instance of item, so we can typecast it to 53 00:05:23,050 --> 00:05:23,740 type item. 54 00:05:29,080 --> 00:05:33,970 And finally, we got to check if the objects fields are equal to the current object that's calling this 55 00:05:33,970 --> 00:05:34,390 method. 56 00:05:37,280 --> 00:05:42,320 We're going to compare the name and price from the object that's calling this method to the one that's 57 00:05:42,320 --> 00:05:43,760 being passed in as a parameter. 58 00:05:56,030 --> 00:05:57,650 All right, let's run the test now. 59 00:06:09,360 --> 00:06:10,260 And it passes. 60 00:06:25,220 --> 00:06:30,770 Here you can visualize it, the contains method is using your equals method to compare your object against 61 00:06:30,770 --> 00:06:32,150 each item in the aerialists. 62 00:06:32,450 --> 00:06:35,170 This points to the current item that's called the equals. 63 00:06:35,180 --> 00:06:36,380 And here is the parameter. 64 00:06:39,040 --> 00:06:40,360 The parameter is not known. 65 00:06:41,450 --> 00:06:42,710 It is an instance of item. 66 00:06:49,240 --> 00:06:53,380 But the fields aren't equal, so equals returns, falls for the first element. 67 00:06:59,070 --> 00:07:02,100 And if you keep going, the second time equals gets called. 68 00:07:03,110 --> 00:07:04,490 This parameter is not known. 69 00:07:04,520 --> 00:07:05,840 It is an instance of item. 70 00:07:08,480 --> 00:07:11,150 And the fields are equal, so equals returns, true. 71 00:07:16,900 --> 00:07:22,690 And because equal is return, true contains determines that the Israelis does contain that object and 72 00:07:22,690 --> 00:07:25,600 it returns true as well and our unit test passes. 73 00:07:29,730 --> 00:07:34,470 All right, since the unit test passes, we can rest assured that our code doesn't have any bugs. 74 00:07:37,200 --> 00:07:38,520 But can I be refactored? 75 00:07:39,030 --> 00:07:40,360 The answer is no. 76 00:07:40,380 --> 00:07:42,390 The code is as elegant as it's going to be. 77 00:07:44,830 --> 00:07:49,990 The second test case tells us the card should skip a duplicate item, so I'll create a unit test named 78 00:07:49,990 --> 00:07:50,980 SIP's Duplicate. 79 00:08:01,200 --> 00:08:06,510 And here I'll make an assertion using a certain false assert, false expects the value to be false. 80 00:08:10,110 --> 00:08:14,340 And we're expecting the odd method to return false if we add a duplicate item. 81 00:08:31,640 --> 00:08:33,200 So back in C�rdova. 82 00:08:37,000 --> 00:08:40,809 We have to write code to make the test fail, so I'm going to return true. 83 00:08:53,520 --> 00:08:55,410 Our test should fail, which is fine. 84 00:08:59,610 --> 00:09:04,650 It says that it was expecting faults, but our unit test returns true, so back in Car Java, we got 85 00:09:04,650 --> 00:09:06,390 to write code to make the test pass. 86 00:09:06,390 --> 00:09:10,650 We'll say if items that contains the item being passed in. 87 00:09:16,000 --> 00:09:16,990 Return false. 88 00:09:18,570 --> 00:09:22,050 Otherwise, we'll return true and add that item to the aerialists. 89 00:09:26,860 --> 00:09:33,730 OK, rerun the test and it passes so we can rest assured that our code doesn't have any bugs, but can 90 00:09:33,730 --> 00:09:34,810 it be a refactored? 91 00:09:34,870 --> 00:09:36,220 The answer is no. 92 00:09:36,280 --> 00:09:38,320 The code is as elegant as it's going to be. 9017

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.