0
AssertManager.Record의 매개 변수가 작동하지만 asserts.So라는 어설 션 유형을 가져올 필요가있는 람다 액션 내부의 값이 필요합니다. 나는 어떤 수업에서 다른 수업으로 넘어 갔다. 어떤 이유로 람다 식을 사용했기 때문에 편집 할 수 없습니다. 나는 그저 어떤 타입의 주장이든지 말한 문자열 타입이 필요하다. 내 예제에서는 콘솔에 "Assert.True"또는 "Assert.Equal"을 출력해야합니다. 매개 변수가 전달 된 람다에 사용 된 메서드 이름을 얻는 방법
는 Heres는 샘플 코드는 내가 사용public class ClassTest
{
AssertManager = new AssertManager();
[Fact]
public void sampleTestAssert()
{
AssertManager.Record(() => Assert.True(true));
AssertManager.Record(() => Assert.Equal("Dog","Dog"));
}
}
public class AssertManager
{
public void Record(Action testMethod)
{
//is it possible to use testMethod to get the Assert inside the lambda in the
//Output what assert i did (ex. Assert.True, Assert.Equal)
}
}
는이에 대한 해결책이 있으면 알려 주시기 바랍니다. 고맙습니다.
난 당신이 다른 각도에서 수행하려는 생각에서 오는보기 ... 다음 람다를 반영 할 수있는 대신
Action
의Expression<Action>
를 사용할 필요가 'Assert.True' 등을 호출하는 코드 행을 변경 하시겠습니까? 그렇다면'Assert' 클래스를 서브 클래스 화하고, 각 메소드 ('True','Equals' 등)를 오버라이드하여 스스로 기록하고, 실제로 어설 션을 수행하도록 기본 클래스를 호출 할 수 있습니까? –