私は次のようなクラスを持っています:
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ファイルを削除し、ソリューションをクリーンアップしました。まだ何もありません。