We actually pair quite a lot, either physically (most of our stations have two keyboards & mice for that exact purpose) or remotely (Skype / Team Viewer).
And yet, I would say that for the vast majority of cases, we don’t pair. Pairing is usually called for when we need two pairs of eyes to look at a problem, for non trivial debugging and that is about it.
Testing is something that I deeply believe in, at the same time that I distrust unit testing. Most of our tests are actually system tests. That test the system end to end. Here is an example of such a test:
[Fact]
public void CanProjectAndSort()
{
using(var store = NewDocumentStore())
{
using(var session = store.OpenSession())
{
session.Store(new Account
{
Profile = new Profile
{
FavoriteColor = "Red",
Name = "Yo"
}
});
session.SaveChanges();
}
using(var session = store.OpenSession())
{
var results = (from a in session.Query<Account>()
.Customize(x => x.WaitForNonStaleResults())
orderby a.Profile.Name
select new {a.Id, a.Profile.Name, a.Profile.FavoriteColor}).ToArray();
Assert.Equal("Red", results[0].FavoriteColor);
}
}
}
Most of our new features are usually built first, then get tests for them. Mostly because it is more efficient to get things done by experimenting a lot without having tests to tie you down.
Read more: Ayende @ Rahien
QR:
0 comments:
Post a Comment