我有一个类,看起来像这样:
public class MyService
{
private MyService(){}
public static string GetStuff()
{
var stuffDid = new MyService();
return stuffDid.DoStuff();
}
private string DoStuff()
{
//do stuff
}
//other private helpers
}
显然,我省略了很多内容,但那是基本框架。
现在,我有一个单元测试:
[Test]
public void MyTest()
{
var results = MyService.GetStuff();
}
我在单元测试中设置了断点,可以看到results
有数据。但是,即使我在MyService
的各个地方设置断点,除非我把它们放在大括号上,否则什么也不会触发。因为results
有数据,所以我在MyService
中的return
语句应该会被触发,对吗?
我有遗漏什么吗?我完全忘记了某些最基本的规则吗?为什么MyService
中的任何内容都不会被触发?如果我手动用F11
进入它,它只会跳来跳去,并且甚至不会像我预期的那样逐行执行。当我手动步进时,我倾向于在本应首先命中它的某些代码之后才能命中它。而且,任何switch
语句似乎都默认为第一个选项,尽管被切换的值显然应该进入不同的case
。
我甚至尝试将MyService
构造函数设置为public
并删除所有static
方法,但仍然没有作用。
我的测试和“Core”代码在同一个解决方案中,但位于不同的项目中(分别为Test
和Core
)。其他测试没有问题地击中了Core
中的断点,只有这个特定测试(唯一测试MyService
的测试)存在问题。
我已经删除了PDB文件并清除了解决方案。仍然没有作用。