我有一个看起来像这样的课程:
public class MyService
{
private MyService(){}
public static string GetStuff()
{
var stuffDid = new MyService();
return stuffDid.DoStuff();
}
private string DoStuff()
{
//do stuff
}
//other private helpers
}
Run Code Online (Sandbox Code Playgroud)
显然我离开了很多,但那是一般的外壳.
现在,我有一个单元测试:
[Test]
public void MyTest()
{
var results = MyService.GetStuff();
}
Run Code Online (Sandbox Code Playgroud)
我在单元测试中设置了断点,我可以看到它results有数据.但是,我完全设置了断点MyService,除非我把它们放在花括号上,否则什么都不会被击中.哪些我无法理解,因为results有数据,我的return陈述MyService应该被击中,对吧?
我错过了什么吗?我完全忘记了最基本的规则吗?怎么没有MyService被击中?如果我手动插入它F11,它只是跳来跳去,甚至没有像我期望的那样通过每一行.此外,当我通过手动步进时,我倾向于在我应该最初击中它之后击中某些代码.并且任何switch语句似乎默认为第一个选项,即使切换的值应该明确输入不同的case.
我甚至试过制作MyService构造函数public并取消所有static方法,但它仍然无法工作.
编辑:我的测试和'核心'代码在同一个解决方案中,但不同的项目(Test和Core分别).其他测试没有遇到突破点的问题Core,只有特定测试(测试的唯一测试)MyService.
编辑2: …