我正在創建一個MonoGame項目,並希望針對現有代碼創建單元測試。我創建了一個測試項目,並開始對GameLopp類進行簡單的測試(我的項目隨附的Game1.cs類的重命名)。我創建了一個基本的「設置成功」測試做出一定比構造函數建立沒有問題:Monogame無法在單元測試中調用遊戲構造函數
public GameLoopTest()
{
using (GameLoop game = new GameLoop())
{ game.Run(); }
}
public void Dispose()
{
_gameloop = null;
}
[Fact]
public void GameLoop_Setup_Suceeds()
{
this.Should().NotBeNull();
}
令我困惑測試的構造函數拋出一個異常NullReference。如果我在調試模式下單步執行測試,則會得到一個更詳細的異常,它告訴我無法找到GraphicsDeviceManager。我搜索高和廣泛,但我一直無法想出爲什麼錯誤發生或如何解決。
我沒有大量的代碼在這個類,但我不想離開的東西如此重要的單元測試發現。
我知道用測試來驗證構造是有點反模式的,但它似乎驗證它不是具體的測試代碼導致該問題的最佳途徑。 – ChargerIIC 2013-04-28 01:58:36
你使用什麼樣的IoC /依賴注入框架? (你使用任何?)。在測試的情況下,你可能需要照顧你的IoC的設置嗎? – 2013-04-28 03:53:45
使用Xunit/FluentAssertions。對於嘲笑我有NSubsitute。除此之外,它只是Monogame。我不相信我熟悉使用依賴注入本身。 – ChargerIIC 2013-04-28 15:21:25