Question

I've read "upstream" program from here ... http://xunitpatterns.com/Back%20Door%20Manipulation.html

If the data store is external to the SUT, such as in a relational database, the Data Loader can be "just another application" that writes to that data store. It would use the database in much the same way as the SUT but it would get its inputs from a file rather than from wherever the SUT normally gets its inputs (e.g. other "upstream" programs.)

Does "upstream" program means some program gives its data through network connection or IPC or some other ways except reading file? I heard upload program or update something, but I've never heard about "upstream" program. Could you explain about it, or give some examples? Thanks in advance.

Was it helpful?

Solution

An upstream program is one that your own program does not really know or care about the existence off. In the example you quoted, your app knows about the data loader, but it doesn't know or care about where the data loader is getting its data from - the upstream program.

The metaphor is from a river - you see the water flowing past you, but you don't know or care where upstream it is coming from. Well, maybe you do care if you are going to drink it, but then no metaphor is perfect :-)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top