C#学习教程:使用NUnit时的NullReferenceException据我所知,我不应该得到这个错误,但确实如此。这是我的代码:[TestFixture]publicclassTests{CardTableaTable=null;[设置]publicvoidsetup(){aTable=newCardTable();}[Test]publicvoidsetPlayerGold_setTo0_return0(){//安排//actaTable.setPlayerGold(0);//断言Assert.AreEqual(0,aTable.playerGold);}}公共类CardTable{intplayerGold;publicCardTable(){playerGold=0;}publicvoidsetPlayerGold(intamount){if(amount==0){playerGold=0;}else{playerGold+=金额;}goldLabel.Text=playerGold+"";}在aTable.setup行抛出异常,就好像aTable没有实例化,即使它显然在[Setup]中,我也不知道为什么。我正在运行带有NUnit2.6.0.12051的VisualC#2010Expressv10.0.40219.1SP1Rel。任何帮助将不胜感激。谢谢!启动NUnit,但不要运行测试。在visualstudio中,确保您有一个包含nunit测试的项目。然后在visualstudio中按ctrl+alt+p。这将显示要附加到的进程列表。选择nunit-agent.exe进程。如果有多个nunit-agent.exe进程,可以按Ctrl+全选。您可能必须检查所有会话的显示进程和/或所有用户的显示进程以显示nunit-agent.exe。此时,您应该能够调试您的测试。您现在可以在CardTable的构造函数调用上设置断点。在单步执行调试器时,您应该能够识别空对象引用错误。单步执行代码的另一种方法是在对话框的“调试”->“异常”菜单中选择“选中公共语言运行时异常”旁边的抛出框。这将导致调试器处理或未处理的任何exec在它们被抛出时停止。这消除了对断点的需要,但如果您捕获的异常被捕获,则可能比上面的断点方法更麻烦。看起来设置是您的问题,并且在您需要时没有被调用。我建议这样做:CardTableaTable=newCardTable();所以它永远不会是空的。我有同样的问题,我已经将NUnit框架版本从3.7.1回滚到3.0.5,现在一切正常。也许您应该回滚到以前版本的NUnit框架之一。以上就是C#学习教程:使用NUnit时出现NullReferenceException。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
