فهرست منبع

Adding tests for update() and render() going from game_dispatch to scene.

Sam Jaffe 6 سال پیش
والد
کامیت
d72353306b
1فایلهای تغییر یافته به همراه25 افزوده شده و 0 حذف شده
  1. 25 0
      engine/test/game_dispatch_test.cxx

+ 25 - 0
engine/test/game_dispatch_test.cxx

@@ -44,6 +44,8 @@ void GameDispatchTest::SetUp() {
   renderer_.reset(new stub_renderer);
   dispatch_.reset(new engine::game_dispatch(renderer_));
   scene_.reset(new mock_scene(dispatch_));
+  game().register_scene(scene_);
+  game().activate_scene("mock");
 }
 
 void GameDispatchTest::TearDown() {
@@ -51,3 +53,26 @@ void GameDispatchTest::TearDown() {
   dispatch_.reset();
   renderer_.reset();
 }
+
+using testing::AnyNumber;
+using testing::Ge;
+using testing::Lt;
+using testing::_;
+
+TEST_F(GameDispatchTest, UpdateDispatchesToCurrentScene) {
+  EXPECT_CALL(scene(), update(_)).Times(1);
+  game().update();
+}
+
+TEST_F(GameDispatchTest, UpdateIsCappedInFrequencyByFPSParam) {
+  EXPECT_CALL(scene(), update(Ge(1.0 / 60.0))).Times(AnyNumber());
+  EXPECT_CALL(scene(), update(Lt(1.0 / 60.0))).Times(0);
+  for (int i = 0; i < 10; i++) {
+    game().update();
+  }
+}
+
+TEST_F(GameDispatchTest, RenderDispatchesToCurrentScene) {
+  EXPECT_CALL(scene(), render(_)).Times(1);
+  game().render();
+}