У меня есть требование, где я хочу проверить, изменяется ли тело моего метода во время выполнения.Это специально для тестового случая с использованием устройства.У меня есть шаги в тесте, которые я хочу сохранить в базе данных.Но большую часть времени эти шаги не изменятся, поэтому я не хочу перегружать мою базу данных, сохраняя этот шаг в базе данных каждый раз, когда он выполняется.Я хочу сохранить новые шаги, только если новые шаги добавлены или изменены.
например,
[Test]
public void Should_Pass_When_SomethingHappened()
{
File.Open(TestFile); //step 1
File.Close() //step2
}
Теперь, если кто-то изменит этот метод, скажем ниже
[Test]
public void Should_Pass_When_SomethingHappened()
{
File.Open(TestFile); //step1
File.Copy(Source, Desitnation); //step2
File.Close(); //step 3
}
Я хочу зафиксировать это изменение в тесте во время выполнения теста.Таким образом, я могу отметить в базе данных, что этот тестовый пример изменился, и избежать добавления новых шагов в базу данных, сохраняя при этом исходные шаги.
Я пробовал это:
public int CheckIfMethodIfModified()
{
Type TestType = typeof(MyTypeName);
MethodInfo myMethodInfo =
TestType.GetMethod("Should_Pass_When_SomethingHappened");
MethodBody mb = myMethodInfo.GetMethodBody();
string result = System.Text.Encoding.UTF8.GetString(mb.GetILAsByteArray());
result.GetHashCode();
}
Этот хэш-кодне меняется, даже если мой метод изменился.