Why not test ActionMaster.bowl directly?

The first bug report/challenge in this video involved ActionMaster’s int bowl being incremented inappropriately. I could not see a way to create a test for this problem without the test knowing what bowl was. Though my solution ended up nearly identical, even while typing it I felt like I was cheating writing the test. I made bowl public, but a GetBowlIndex() would’ve done just as well.

public void T11_TenPinsOnSecondBowlOfFrameIsASpare()
actionMaster.Bowl(0);
int b = actionMaster.bowl;
actionMaster.Bowl(10);
Assert.AreEqual(b + 1, actionMaster.bowl);

This worked perfectly, but I feel like I violated the spirit of the lesson a little. Is there some risk to directly testing a variable in this way? Is there some advantage to only testing enumerated returned actions?