【发布时间】:2015-12-06 02:21:44
【问题描述】:
我目前正在开发一个基于堆栈的虚拟机,它从文本文件加载命令,我需要测试类 Increment 和 Decrement 操作。 我对单元测试还很陌生,但我已经研究了一些示例来掌握语法,但现在我有点卡住了!
当我尝试运行测试时,我得到一个空值异常,所以我想我的下一个问题是我最好使用 Moq 或 Fakes 来传递一个值来测试它是否通过了预期的结果?
我查看了 Fakes 程序集,这是我想出的,但我不确定如何通过 System.Collections
在此之后我陷入困境,任何帮助/建设性帮助都会非常好。
EDIT- 在调用此类之前,整数值已被压入堆栈。
【问题讨论】:
-
不确定我是否只是遗漏了一些东西,但是你怎么能期望在不先将东西压入堆栈的情况下从堆栈中弹出一些东西?
-
在 Pop 之后直接有一个 Push 语句,它可以在适当的语句中正常工作,变量的调用就像在我要测试的类中一样。 int op1 = (int)VirtualMachine.Stack.Pop(); VirtualMachine.Stack.Push(op1--);
-
空值异常发生在哪里?将帮助我们更快地找到问题。
-
抱歉,当我在测试资源管理器中运行测试时,我得到这个:结果 StackTrace:在 UnitTestSVM\UnitTest1.cs 中的 UnitTestSVM.UnitTest1.DecrTest():第 17 行结果消息:测试方法 UnitTestSVM.UnitTest1 .DecrTest 抛出异常:System.NullReferenceException:对象引用未设置为对象的实例。
标签: c# unit-testing moq microsoft-fakes