получить имя функции внутри него

У меня есть куча таких функций, как :method1, method2, method3. Для всех из них есть HUnitтестовых функций, таких как :testMethod1, testMethod2, testMethod3,

testMethod1 = TestCase $
  assertEqual "testmethod1"...

testMethod2 = TestCase $
  assertEqual "testmethod2"...

testMethod3 = TestCase $
  assertEqual "testmethod3"...

Хотелось бы избежать избыточного копирования имени функции в качестве префикса ошибки сообщение и назовите его как-то так:

testMethod1 = TestCase $
  assertEqual_...

Как это может быть достигнуто, (любой «магический» трюк ценится)?

Итак, на самом деле вопрос в том, как имя функции может быть взято внутри ее определения?


Обновление .

На самом деле из первоначального вопроса не совсем ясно, что я тоже хочу справиться с такой ситуацией:

tProcess = TestCase $ do
  assertEqual "tProcess" testResult $ someTest
  assertEqual "tProcess" anotherTestResult $ anotherTest
  assertEqual "tProcess" resultAgain $ testAgain

Наконец, я хочу написать что-то подобное:

tProcess = TestCase $ do
  assertEqual_ testResult $ someTest
  assertEqual_ anotherTestResult $ anotherTest
  assertEqual_ resultAgain $ testAgain
7
задан ДМИТРИЙ МАЛИКОВ 6 April 2012 в 15:09
поделиться