質問編集履歴

2

空白の削除をしました。

2022/03/17 23:38

投稿

yuyuy
yuyuy

スコア12

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  var instance2 = new sample2();
34
34
  var pbObj = new PrivateObject(instance2);
35
- pbObj.SetField(" _result", false);
35
+ pbObj.SetField("_result", false);
36
36
 
37
37
  var ret = instance.method1();
38
38
  Assert.IsFail(ret);

1

ソースを追加しました。

2022/03/17 21:30

投稿

yuyuy
yuyuy

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,9 @@
1
1
  テスト対象関数の中の関数の、privateフィールドにアクセスする方法はありますか。
2
2
  例えば、以下のソースでは、sample1クラスのmethod1のテストを行っています。 method1の中の関数method2のprivateフィールド _resultの値にfalseをセットし、method1の戻り値がfalseになるようにしたいです。
3
- 下記のソースだと、 _resultがtrueのままになってしまいます。
3
+ 下記のようにprivateObject を使って書いてみたのですが、 _resultがtrueのままになってしまいます。
4
4
 
5
+ ```c#
5
- public class sample1
6
+ public class sample1
6
7
  {
7
8
  public bool method1
8
9
  {
@@ -10,8 +11,9 @@
10
11
  return ret;
11
12
  }
12
13
  }
13
-
14
+ ```
15
+ ```c#
14
- public class sample2
16
+ public class sample2
15
17
  {
16
18
  private bool _result = true
17
19
 
@@ -20,8 +22,10 @@
20
22
  return _result;
21
23
  }
22
24
  }
25
+ ```
23
26
 
27
+ ```c#
24
- [TestMethod()]
28
+ [TestMethod()]
25
29
  public void method1Test()
26
30
  {
27
31
  var instance = new sample1();
@@ -34,3 +38,4 @@
34
38
  Assert.IsFail(ret);
35
39
  }
36
40
 
41
+ ```