3 ms·
That's exactly my point, mock your external dependencies. Static calls don't allow you to do that.
by hacker_9 9y ago
That's exactly my point, mock your external dependencies. Static calls don't allow you to do that.
- vertex-four 9y agoSo how exactly do you test that your SQL query does the right thing? That you're using the Twitter API correctly?
- hacker_9 9y agoTesting a database, or an external web service, is an integration test. They can be as simple as: void TestCreateUser() { var repo = new UsersRepository(); var mockUser = new User("John", "Smith"); repo.AddUser(mockUser); // db call var addedUser = repo.GetUsers().Single(); // db call Assert.StructureIsEqual(mockUser, addedUser); } For the Twitter web service, you might test that you successfully get a response, as you don't have control of what exactly comes back.
- viraptor 9y agoIn your language of choice: static_function(db, other, arguments) { ... } test { static_function(fake_db, 1, 2) } You can even omit the db in the standard case if your language allows default keyword arguments. In almost every language, a method is just a fancy static call that takes extra arguments implicitly. (Closures are poor man's objects, objects are poor man's closures...)