質問編集履歴

2

回答社さんからの指摘箇所を修正(誤記でした)

2020/03/18 20:43

投稿

smpik
smpik

スコア12

test CHANGED
File without changes
test CHANGED
@@ -92,7 +92,7 @@
92
92
 
93
93
  var inputForTest = structInstance.GetType()
94
94
 
95
- .GetField("member1", BindingFlags.Instance, BindingFlags.NonPublic)
95
+ .GetField("member1", BindingFlags.Instance, BindingFlags.Public)
96
96
 
97
97
  inputForTest.SetValue(structInstance,true);
98
98
 

1

コードを追記しました。

2020/03/18 20:43

投稿

smpik
smpik

スコア12

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,8 @@
13
13
 
14
14
 
15
15
  ### 該当のソースコード
16
+
17
+ ```c#
16
18
 
17
19
  // testTargetScript.cs(テストしたい関数をもってるスクリプト)
18
20
 
@@ -56,13 +58,19 @@
56
58
 
57
59
 
58
60
 
61
+ s.member = false;
62
+
59
63
  }
60
64
 
61
65
  }
62
66
 
63
67
  }
64
68
 
69
+ ```
65
70
 
71
+
72
+
73
+ ```c#
66
74
 
67
75
  // testCode.cs
68
76
 
@@ -74,11 +82,43 @@
74
82
 
75
83
  {
76
84
 
85
+ var classInstance = new testTargetScript();
86
+
87
+ var structInstance = typeof(testTargetScript)
88
+
89
+ .GetField("s", BindingFlags.Instance, BindingFlags.NonPublic)
90
+
91
+ .GetValue(classInstance);
92
+
93
+ var inputForTest = structInstance.GetType()
94
+
95
+ .GetField("member1", BindingFlags.Instance, BindingFlags.NonPublic)
96
+
97
+ inputForTest.SetValue(structInstance,true);
98
+
99
+
100
+
101
+ var targetMethod = typeof(testTargetScript)
102
+
103
+ .GetMethod("testTargetMethod", BindingFlags, BindingFlags.NonPublic)
104
+
105
+ .Invoke(classInstance,null);
106
+
77
- //ここでtestTargetScript内のs.member1へアクセスしたいです。
107
+ //このメソッドコールによってs.memberがfalseに書き換わるはず!
108
+
109
+
110
+
111
+ bool result = (bool)inputForTest.GetValue(structInstance);
112
+
113
+ //↑このresultに格納される値がfalseにならない。。。
78
114
 
79
115
  }
80
116
 
81
117
  }
118
+
119
+ ```
120
+
121
+
82
122
 
83
123
 
84
124