私は次のようなクラスを持っています:
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、私のreturnステートメントはMyServiceヒットするはずですよね?
私は何かが足りないのですか?私は何かの最も基本的なルールを完全に忘れましたか?どうして何もMyServiceヒットしないのですか?そして、手動でそれに足を踏み入れるとF11、それはただ飛び回って、私が期待するようにすべての行を通過することさえありません。また、手動でステップスルーすると、最初にヒットしたはずのコードをヒットする傾向があります。また、switch切り替えられる値が明確に別のを入力する必要がある場合でも、ステートメントは最初のオプションがデフォルトになっているように見えますcase。
MyServiceコンストラクターを作成publicしてすべてのメソッドを削除しようとしましたがstatic、それでも機能しません。
私のテストと「コア」コードは同じソリューションにありますが、プロジェクトは異なります(それぞれTestとCore)。他のテストでは、ブレークポイントに到達する問題はありませんCore。特定のテスト(テストしている唯一のテストMyService)でのみ問題が発生します。
PDBファイルを削除し、ソリューションをクリーンアップしました。まだ何もありません。


