Library

Video Player is loading.
 
Current Time 0:00
Duration 15:37
Loaded: 0%
 

x1.00


Back

Games & Quizzes

Training Mode - Typing
Fill the gaps to the Lyric - Best method
Training Mode - Picking
Pick the correct word to fill in the gap
Fill In The Blank
Find the missing words in a sentence Requires 5 vocabulary annotations
Vocabulary Match
Match the words to the definitions Requires 10 vocabulary annotations

You may need to watch a part of the video to unlock quizzes

Don't forget to Sign In to save your points

Challenge Accomplished

PERFECT HITS +NaN
HITS +NaN
LONGEST STREAK +NaN
TOTAL +
- //

We couldn't find definitions for the word you were looking for.
Or maybe the current language is not supported

  • 00:18

    >>Yvette Nameth: Next up, we have Yabin, from LinkedIn, to talk about mocking the Internet.
    >>Yvette Nameth: Next up, we have Yabin, from LinkedIn, to talk about mocking the Internet.

  • 00:26

    [ Applause ] >>Yabin Kang: Hello, everyone.
    [ Applause ] >>Yabin Kang: Hello, everyone.

  • 00:32

    [ Applause ] I know, it's about time for lunch.
    [ Applause ] I know, it's about time for lunch.

  • 00:37

    But let me use the ten minutes to give you something more interesting and may help in
    But let me use the ten minutes to give you something more interesting and may help in

  • 00:43

    your day-to-day work.
    your day-to-day work.

  • 00:45

    So a little bit about myself.
    So a little bit about myself.

  • 00:46

    My name is Yabin Kang.
    My name is Yabin Kang.

  • 00:49

    I'm from LinkedIn New York team.
    I'm from LinkedIn New York team.

  • 00:51

    I have been with LinkedIn for three years.
    I have been with LinkedIn for three years.

  • 00:55

    So today I'm going to talk about the topic Mock the Internet, which I will first introduce
    So today I'm going to talk about the topic Mock the Internet, which I will first introduce

  • 01:01

    the new mocking system that we are currently working on, which is called Flashback, and
    the new mocking system that we are currently working on, which is called Flashback, and

  • 01:06

    also give you the overview of the mocking strategy that we have in LinkedIn.
    also give you the overview of the mocking strategy that we have in LinkedIn.

  • 01:11

    So Flashback is a network-layer mocking system that is taking care of all of the outbound
    So Flashback is a network-layer mocking system that is taking care of all of the outbound

  • 01:17

    traffic that goes on the Internet, where you really don't want to see, like, the third-party
    traffic that goes on the Internet, where you really don't want to see, like, the third-party

  • 01:22

    downtime network issue or results constraints that break your test.
    downtime network issue or results constraints that break your test.

  • 01:27

    So that's why we created Flashback.
    So that's why we created Flashback.

  • 01:29

    Before we jump into the details, let's talk a little bit about why we like mocking, not
    Before we jump into the details, let's talk a little bit about why we like mocking, not

  • 01:36

    only for unit tests, but also for service-level integration test.
    only for unit tests, but also for service-level integration test.

  • 01:45

    So why mocking?
    So why mocking?

  • 01:46

    Imagine we have the LinkedIn profile page.
    Imagine we have the LinkedIn profile page.

  • 01:50

    Hopefully, everybody in this room has a LinkedIn profile.
    Hopefully, everybody in this room has a LinkedIn profile.

  • 01:53

    Otherwise, you miss a chance to connect to other 400 million professionals.
    Otherwise, you miss a chance to connect to other 400 million professionals.

  • 01:58

    [ Laughter ] This (indiscernible).
    [ Laughter ] This (indiscernible).

  • 02:00

    No.
    No.

  • 02:01

    The Marketing team asked me to do.
    The Marketing team asked me to do.

  • 02:02

    Okay.
    Okay.

  • 02:03

    Back to the profile page.
    Back to the profile page.

  • 02:07

    So it requires more than 100 downstream dependency servers to render this page.
    So it requires more than 100 downstream dependency servers to render this page.

  • 02:14

    If you test -- and most likely your test, it just tests one tiny specification on this
    If you test -- and most likely your test, it just tests one tiny specification on this

  • 02:18

    page -- you don't really want to rely on all of these dependencies.
    page -- you don't really want to rely on all of these dependencies.

  • 02:22

    Right?
    Right?

  • 02:23

    And things are getting worse if one of the dependencies is actually an external service
    And things are getting worse if one of the dependencies is actually an external service

  • 02:28

    that -- on the Internet, which you don't have control.
    that -- on the Internet, which you don't have control.

  • 02:31

    So the best way to solve this problem is mock them, mock all the dependencies.
    So the best way to solve this problem is mock them, mock all the dependencies.

  • 02:36

    Then you have a good test.
    Then you have a good test.

  • 02:40

    So take a look at this high-level picture of LinkedIn ingestion service.
    So take a look at this high-level picture of LinkedIn ingestion service.

  • 02:45

    (indiscernible) ingestion service is built by our New York team, and it is a service
    (indiscernible) ingestion service is built by our New York team, and it is a service

  • 02:51

    to grab content from the Internet to enrich your profile to be more attractive.
    to grab content from the Internet to enrich your profile to be more attractive.

  • 02:57

    So besides the -- besides the typical three-tiered architecture on the left, you will see there
    So besides the -- besides the typical three-tiered architecture on the left, you will see there

  • 03:05

    is a gateway service in the middle.
    is a gateway service in the middle.

  • 03:08

    It is -- it is working as a proxy.
    It is -- it is working as a proxy.

  • 03:12

    And here is a good opportunity for us to mock in this layer in order to test our ingestion
    And here is a good opportunity for us to mock in this layer in order to test our ingestion

  • 03:17

    service results rely on the external providers.
    service results rely on the external providers.

  • 03:21

    And this is where the Flashback fits in.
    And this is where the Flashback fits in.

  • 03:25

    So Flashback still acts as a proxy, handles the HTTP, HTTP has traffic in terms of request
    So Flashback still acts as a proxy, handles the HTTP, HTTP has traffic in terms of request

  • 03:34

    and response and store them.
    and response and store them.

  • 03:37

    It is controlled by test framework, so you can start it, like record or play.
    It is controlled by test framework, so you can start it, like record or play.

  • 03:41

    You can also change the mock data on the fly from your test case since we have the API.
    You can also change the mock data on the fly from your test case since we have the API.

  • 03:47

    Or, as you wish, you can manipulate the response in a way to test the different variation of
    Or, as you wish, you can manipulate the response in a way to test the different variation of

  • 03:53

    (indiscernible) case for your service.
    (indiscernible) case for your service.

  • 03:55

    So, basically, you have the full control of what's going to be mocked on the network.
    So, basically, you have the full control of what's going to be mocked on the network.

  • 04:00

    So let me show you some code.
    So let me show you some code.

  • 04:03

    This is the implementation about a record and replay inside Flashback.
    This is the implementation about a record and replay inside Flashback.

  • 04:09

    Let me -- Recording, we actually take the response returned from the external provider
    Let me -- Recording, we actually take the response returned from the external provider

  • 04:16

    and are pairing it with the request that came from the internal service and store them locally.
    and are pairing it with the request that came from the internal service and store them locally.

  • 04:22

    When we're playing, we load the local stored response according to the request that came
    When we're playing, we load the local stored response according to the request that came

  • 04:28

    from the internal service and just return them back.
    from the internal service and just return them back.

  • 04:30

    So there's -- there's not going to be anything -- any traffic that goes on the Internet.
    So there's -- there's not going to be anything -- any traffic that goes on the Internet.

  • 04:35

    Also, I want to show you again some of the mock data, the actual mock data.
    Also, I want to show you again some of the mock data, the actual mock data.

  • 04:41

    You can see we have all the information about the request and response.
    You can see we have all the information about the request and response.

  • 04:46

    And like I mentioned, you can actually manipulate the response by modifying this file.
    And like I mentioned, you can actually manipulate the response by modifying this file.

  • 04:51

    Like, we can change the standard code to something else, from 200 to 404, to indicate a not found
    Like, we can change the standard code to something else, from 200 to 404, to indicate a not found

  • 04:58

    response.
    response.

  • 04:59

    Or you can modify the content of the AGT body to something else, anything you want.
    Or you can modify the content of the AGT body to something else, anything you want.

  • 05:05

    In this way, you can test your service in a lot more scenarios.
    In this way, you can test your service in a lot more scenarios.

  • 05:09

    Then you can see how strong, how reliable your service is.
    Then you can see how strong, how reliable your service is.

  • 05:13

    So, okay, Flashback is a good solution for us to test our ingestion service without relying
    So, okay, Flashback is a good solution for us to test our ingestion service without relying

  • 05:19

    on the external provider.
    on the external provider.

  • 05:22

    But when we step back and take a look at the whole picture of how Flashback works, it's
    But when we step back and take a look at the whole picture of how Flashback works, it's

  • 05:29

    actually -- it seems a common solution, just doing the mocking, the network, the traffic.
    actually -- it seems a common solution, just doing the mocking, the network, the traffic.

  • 05:36

    Right?
    Right?

  • 05:37

    If we can make the Flashback more generic to be essentially at the service or the system,
    If we can make the Flashback more generic to be essentially at the service or the system,

  • 05:43

    it can help in a lot of other place in the same manner, like internal service.
    it can help in a lot of other place in the same manner, like internal service.

  • 05:50

    So LinkedIn internal service are all RAS files, which means you have a common library being
    So LinkedIn internal service are all RAS files, which means you have a common library being

  • 05:56

    used by the service and all the clients.
    used by the service and all the clients.

  • 06:00

    So to -- adding to Flashback is just like a config change to a Flashback-enabled HTTP
    So to -- adding to Flashback is just like a config change to a Flashback-enabled HTTP

  • 06:05

    client.
    client.

  • 06:06

    Then you can use that.
    Then you can use that.

  • 06:07

    It's quite easy, and nothing needs to be changed inside your service.
    It's quite easy, and nothing needs to be changed inside your service.

  • 06:12

    It's also a good solution for data service.
    It's also a good solution for data service.

  • 06:17

    As long as your service is going through HTTP protocol, then you can enable Flashback, and
    As long as your service is going through HTTP protocol, then you can enable Flashback, and

  • 06:23

    it will take care of the mocking part, mocking the data from the data service.
    it will take care of the mocking part, mocking the data from the data service.

  • 06:31

    Also, it's more interesting to talk about the mobile client testing.
    Also, it's more interesting to talk about the mobile client testing.

  • 06:37

    So when we do mobile client testing, we actually need to launch the emulator, launch the app,
    So when we do mobile client testing, we actually need to launch the emulator, launch the app,

  • 06:42

    and deploy your service, and having the real traffic between the client and your service.
    and deploy your service, and having the real traffic between the client and your service.

  • 06:49

    But instead of making all this live traffic, if we can set up the proxy inside the emulator
    But instead of making all this live traffic, if we can set up the proxy inside the emulator

  • 06:55

    and point to the Flashback, and then you can take advantage of over the Flashback and the
    and point to the Flashback, and then you can take advantage of over the Flashback and the

  • 06:59

    proximity of network mocking.
    proximity of network mocking.

  • 07:03

    So it's quite easy to set up the proxy inside emulator.
    So it's quite easy to set up the proxy inside emulator.

  • 07:07

    And it also works for real device.
    And it also works for real device.

  • 07:10

    And, again, there is nothing that needs to be changed inside of the app.
    And, again, there is nothing that needs to be changed inside of the app.

  • 07:16

    You can just use Flashback.
    You can just use Flashback.

  • 07:19

    Okay.
    Okay.

  • 07:21

    I hope you guys have the idea of what we are trying to build, the Flashback.
    I hope you guys have the idea of what we are trying to build, the Flashback.

  • 07:29

    It helps you in the area of doing the service-level integration test that requires a network layer
    It helps you in the area of doing the service-level integration test that requires a network layer

  • 07:35

    mocking.
    mocking.

  • 07:36

    And we are trying to build it in a way that could be open sourced.
    And we are trying to build it in a way that could be open sourced.

  • 07:41

    And it will be a library for anyone who wants to use or anybody who even wants to make contribution
    And it will be a library for anyone who wants to use or anybody who even wants to make contribution

  • 07:46

    back.
    back.

  • 07:47

    Or you can, like, come and join us in LinkedIn --
    Or you can, like, come and join us in LinkedIn --

  • 07:50

    [ Laughter ] -- and let's work together and mock 'n roll.
    [ Laughter ] -- and let's work together and mock 'n roll.

  • 07:56

    Thank you.
    Thank you.

  • 07:58

    [ Applause ] >>Yvette Nameth: Thank you.
    [ Applause ] >>Yvette Nameth: Thank you.

  • 08:07

    What's the difference between using dedicated Flashback service versus using mocking frameworks
    What's the difference between using dedicated Flashback service versus using mocking frameworks

  • 08:11

    at the class layer like Mockito, EasyMock, et cetera?
    at the class layer like Mockito, EasyMock, et cetera?

  • 08:15

    >>Yabin Kang: So the -- Flashback is still, like, network-layer mocking.
    >>Yabin Kang: So the -- Flashback is still, like, network-layer mocking.

  • 08:21

    So for those unit test mocking is kind of mocked at the class layer.
    So for those unit test mocking is kind of mocked at the class layer.

  • 08:26

    So when we mock the network layer, so you actually have the real traffic goes out to
    So when we mock the network layer, so you actually have the real traffic goes out to

  • 08:30

    -- goes out from your service, so that that's verified, like, a lot more than, like, just
    -- goes out from your service, so that that's verified, like, a lot more than, like, just

  • 08:36

    inside the class.
    inside the class.

  • 08:37

    >>Yvette Nameth: How does Flashback compare to WireMock or other mock proxy tools?
    >>Yvette Nameth: How does Flashback compare to WireMock or other mock proxy tools?

  • 08:42

    >>Yabin Kang: That's a good question.
    >>Yabin Kang: That's a good question.

  • 08:43

    I knew someone would ask this question.
    I knew someone would ask this question.

  • 08:47

    So WireMock is -- Sorry.
    So WireMock is -- Sorry.

  • 08:49

    So Flashback was -- the idea for Flashback was for our ingestion service.
    So Flashback was -- the idea for Flashback was for our ingestion service.

  • 08:56

    We built that as a proxy.
    We built that as a proxy.

  • 08:58

    Then we realized we -- actually, there is, like, WireMock or Betamax.
    Then we realized we -- actually, there is, like, WireMock or Betamax.

  • 09:02

    There is a lot of other mocking -- network mocking stuff there.
    There is a lot of other mocking -- network mocking stuff there.

  • 09:06

    But some of them is now doing, like, a proxy way.
    But some of them is now doing, like, a proxy way.

  • 09:10

    Some of them is all handled at the https traffic.
    Some of them is all handled at the https traffic.

  • 09:14

    So we end up with we wanted to build something ourself.
    So we end up with we wanted to build something ourself.

  • 09:18

    >>Yvette Nameth: How do you deal with post requests?
    >>Yvette Nameth: How do you deal with post requests?

  • 09:21

    And how do you deal with URL GET with variable parameters, like time stamp, random session
    And how do you deal with URL GET with variable parameters, like time stamp, random session

  • 09:26

    ID, et cetera.
    ID, et cetera.

  • 09:27

    >>Yabin Kang: The post request is the same -- is still just a request.
    >>Yabin Kang: The post request is the same -- is still just a request.

  • 09:33

    It's just different method.
    It's just different method.

  • 09:35

    So we have the post.
    So we have the post.

  • 09:36

    Like in the mock data, we have the method tab for get or post.
    Like in the mock data, we have the method tab for get or post.

  • 09:42

    To deal with the different parameter, like time stamp, random session.
    To deal with the different parameter, like time stamp, random session.

  • 09:47

    Okay.
    Okay.

  • 09:48

    So this problem is -- we don't have this problem for our ingestion service testing, because
    So this problem is -- we don't have this problem for our ingestion service testing, because

  • 09:56

    we -- most of our case is, like, static content -- static URL and content.
    we -- most of our case is, like, static content -- static URL and content.

  • 10:05

    But we do -- have thought about this.
    But we do -- have thought about this.

  • 10:08

    We can make some parameter or variables inside your URL, or you help to indicate, okay, this
    We can make some parameter or variables inside your URL, or you help to indicate, okay, this

  • 10:16

    part of data is, like, dynamic.
    part of data is, like, dynamic.

  • 10:18

    We don't care.
    We don't care.

  • 10:19

    We just care something like the -- important is a get and what's the URL, what's the body,
    We just care something like the -- important is a get and what's the URL, what's the body,

  • 10:27

    the content.
    the content.

  • 10:28

    Yeah.
    Yeah.

  • 10:29

    >>Yvette Nameth: Is Flashback open source?
    >>Yvette Nameth: Is Flashback open source?

  • 10:31

    >>Yabin Kang: Yes, it is going to be open sourced.
    >>Yabin Kang: Yes, it is going to be open sourced.

  • 10:33

    >>Yvette Nameth: That one's a repeat.
    >>Yvette Nameth: That one's a repeat.

  • 10:39

    How do you manage situations where third-party providers change their layout or schema?
    How do you manage situations where third-party providers change their layout or schema?

  • 10:43

    >>Yabin Kang: Mm.
    >>Yabin Kang: Mm.

  • 10:44

    Okay.
    Okay.

  • 10:45

    That's another good question.
    That's another good question.

  • 10:47

    So, basically -- so for the case for our ingestion service, we -- we don't have the idea when
    So, basically -- so for the case for our ingestion service, we -- we don't have the idea when

  • 10:58

    the third party will change their content; right?
    the third party will change their content; right?

  • 11:01

    So we keep running our test for using the mock data, which is making sure our service
    So we keep running our test for using the mock data, which is making sure our service

  • 11:08

    is still working for at least the old data.
    is still working for at least the old data.

  • 11:11

    Then we have some live traffic to making sure that's going to be working for the -- for
    Then we have some live traffic to making sure that's going to be working for the -- for

  • 11:17

    the new data.
    the new data.

  • 11:18

    And also, since you have the mock data, you can theoretically check the data versus the
    And also, since you have the mock data, you can theoretically check the data versus the

  • 11:25

    new data from the -- the third party.
    new data from the -- the third party.

  • 11:28

    Then you will know, like, is there any change?
    Then you will know, like, is there any change?

  • 11:30

    Is there any schema change or some content change?
    Is there any schema change or some content change?

  • 11:33

    If there's a significant change, you can rerecord the stuff and do the test again.
    If there's a significant change, you can rerecord the stuff and do the test again.

  • 11:39

    >>Yvette Nameth: How does it handle https requests?
    >>Yvette Nameth: How does it handle https requests?

  • 11:44

    >>Yabin Kang: Okay.
    >>Yabin Kang: Okay.

  • 11:46

    So since you know we are using, like, the proxy way, (indiscernible) require we have
    So since you know we are using, like, the proxy way, (indiscernible) require we have

  • 11:52

    to have a man-in-the-middle proxy.
    to have a man-in-the-middle proxy.

  • 11:54

    So we kind of implement that.
    So we kind of implement that.

  • 11:59

    And that's the most challenge in Flashback, since most of our URLs is going through https
    And that's the most challenge in Flashback, since most of our URLs is going through https

  • 12:05

    traffic.
    traffic.

  • 12:06

    So we spend a lot of time on, like, handling the https and doing the man in the middle
    So we spend a lot of time on, like, handling the https and doing the man in the middle

  • 12:13

    thing.
    thing.

  • 12:14

    Yeah.
    Yeah.

  • 12:15

    >>Yvette Nameth: How do you keep recorded data up-to-date?
    >>Yvette Nameth: How do you keep recorded data up-to-date?

  • 12:18

    >>Yabin Kang: This is sort of like if the content change around the third party.
    >>Yabin Kang: This is sort of like if the content change around the third party.

  • 12:25

    So like I said, for whatever the mock data that you have, you should be able to test
    So like I said, for whatever the mock data that you have, you should be able to test

  • 12:30

    -- to run your test.
    -- to run your test.

  • 12:35

    But if the data changed, you need to have a mechanism to check if anything changed between
    But if the data changed, you need to have a mechanism to check if anything changed between

  • 12:42

    your old data and the new data from the third party.
    your old data and the new data from the third party.

  • 12:45

    So -- so, like I said, you need to periodically check to see.
    So -- so, like I said, you need to periodically check to see.

  • 12:50

    >>Yvette Nameth: How do you ensure mocked tests don't get forgotten about when internal
    >>Yvette Nameth: How do you ensure mocked tests don't get forgotten about when internal

  • 12:56

    service APIs change?
    service APIs change?

  • 12:57

    >>Yabin Kang: Okay.
    >>Yabin Kang: Okay.

  • 12:59

    That's -- that's sort of similar to the last question.
    That's -- that's sort of similar to the last question.

  • 13:03

    But I think it's more like asking about the internal service.
    But I think it's more like asking about the internal service.

  • 13:07

    Since we are testing, if we are running that against internal service, so you have the
    Since we are testing, if we are running that against internal service, so you have the

  • 13:11

    idea of what version you're using for your downstream service.
    idea of what version you're using for your downstream service.

  • 13:16

    So, basically, you have a service -- you have version for your own service, and you have
    So, basically, you have a service -- you have version for your own service, and you have

  • 13:21

    another dependency service.
    another dependency service.

  • 13:24

    So when update your dependency service, you know something might be changed; right?
    So when update your dependency service, you know something might be changed; right?

  • 13:29

    So in the Flashback, either you do rerecording every time there is a change for the downstream
    So in the Flashback, either you do rerecording every time there is a change for the downstream

  • 13:38

    version, or we want to have some, like, mechanism to say my test knows my service, and we know
    version, or we want to have some, like, mechanism to say my test knows my service, and we know

  • 13:49

    we only care about some particular data, like I only care about the first name, last name.
    we only care about some particular data, like I only care about the first name, last name.

  • 13:54

    I don't care about, like, maybe someday there is a new field that says title or something.
    I don't care about, like, maybe someday there is a new field that says title or something.

  • 13:59

    So I can have a way to verify, like, if the new service -- if I construct the data schema
    So I can have a way to verify, like, if the new service -- if I construct the data schema

  • 14:07

    for the new service, still have the last name, first name, then it's good, I can still use
    for the new service, still have the last name, first name, then it's good, I can still use

  • 14:12

    that data, I can still test my service.
    that data, I can still test my service.

  • 14:14

    And it should not break my service, should not break my test.
    And it should not break my service, should not break my test.

  • 14:18

    And should -- there is nothing I should worry about for the downstream update.
    And should -- there is nothing I should worry about for the downstream update.

  • 14:24

    >>Yvette Nameth: And one last question.
    >>Yvette Nameth: And one last question.

  • 14:29

    They keep moving.
    They keep moving.

  • 14:33

    Where's the new one?
    Where's the new one?

  • 14:39

    How is Flashback different than LinkedIn's other product, Sephia?
    How is Flashback different than LinkedIn's other product, Sephia?

  • 14:45

    >>Yabin Kang: So -- so the Flashback started with, like I mentioned, for the ingestion
    >>Yabin Kang: So -- so the Flashback started with, like I mentioned, for the ingestion

  • 14:54

    service, the proxy.
    service, the proxy.

  • 14:57

    All our other products is kind of doing either the mocking inside the service or inside the
    All our other products is kind of doing either the mocking inside the service or inside the

  • 15:07

    class, which is -- you need -- you have to modify something inside your service or inside
    class, which is -- you need -- you have to modify something inside your service or inside

  • 15:14

    your code, which this kind of give you the benefit of proxy, as long as you can still
    your code, which this kind of give you the benefit of proxy, as long as you can still

  • 15:19

    have a proxy, then you're good to go.
    have a proxy, then you're good to go.

  • 15:22

    >>Yvette Nameth: Great.
    >>Yvette Nameth: Great.

  • 15:23

    Thank you very much.
    Thank you very much.

  • 15:24

    >>Yabin Kang: Thank you, guys.
    >>Yabin Kang: Thank you, guys.

  • 15:25

    [ Applause ]
    [ Applause ]

All verb-ing
mocking
/ˈmäkiNG/

word

To laugh at someone or something in an unkind way

GTAC 2015: Mock the Internet

3,923 views

Video Language:

  • English

Caption Language:

  • English (en)

Accent:

  • English (US)

Speech Time:

96%
  • 15:06 / 15:36

Speech Rate:

  • 144 wpm - Conversational

Category:

  • Science & Technology

Intro:

>>Yvette Nameth: Next up, we have Yabin, from LinkedIn, to talk about mocking the Internet.
[ Applause ] >>Yabin Kang: Hello, everyone.. [ Applause ] I know, it's about time for lunch.. But let me use the ten minutes to give you something more interesting and may help in
your day-to-day work.. So a little bit about myself.. My name is Yabin Kang.. I'm from LinkedIn New York team.. I have been with LinkedIn for three years.. So today I'm going to talk about the topic Mock the Internet, which I will first introduce
the new mocking system that we are currently working on, which is called Flashback, and
also give you the overview of the mocking strategy that we have in LinkedIn.
So Flashback is a network-layer mocking system that is taking care of all of the outbound
traffic that goes on the Internet, where you really don't want to see, like, the third-party
downtime network issue or results constraints that break your test.
So that's why we created Flashback.. Before we jump into the details, let's talk a little bit about why we like mocking, not
only for unit tests, but also for service-level integration test.
So why mocking?. Imagine we have the LinkedIn profile page..

Video Vocabulary

/ˈint(ə)rəstiNG/

adjective verb

arousing curiosity or interest. To persuade to do, become involved with something.

/ˌin(t)əˈɡrāSH(ə)n/

noun

Act of bringing things together into a whole.

/ˈmäkiNG/

adjective verb

making fun of person or thing in cruel way. To laugh at someone or something in an unkind way.

/ˈprōˌfīl/

noun verb

Shape of someone's head when viewed from the side. To write a short description of a person or group.

/ˈtrafik/

noun verb

vehicles moving on public highway. deal or trade in something illegal.

/ˈsəmˌTHiNG/

adverb pronoun

used for emphasis with following adjective functioning as adverb. thing that is unspecified or unknown.

/krēˈāt/

verb

To make, cause, or bring into existence.

/ˈdounˌtīm/

noun

Time when (machine, factory) is not operating.

/ˈkərəntlē/

adverb

at present time.

/ˈnetˌwərk/

noun verb

Group of radio or television stations, programs. To exchange information with colleagues, contacts.

/kənˈstrānt/

noun other

limitation or restriction. Things that prevent you moving/acting restrictions.

/ˈminit/

noun other

sixty seconds. Records in writing what is said at a meeting.

/ˈmilyən/

number

1,000,000.

/ˈevrēˌbädē/

pronoun

Every person; everyone.

/ˈōvərˌvyo͞o/

noun verb

A description of the main points; summary. give general review or summary of.