소스 정보
- 저장소
- foxminchan/BookWorm
- 최근 소스 활동
- 2026년 5월 8일 05:02
- 감지된 SKILL.md 언어
- 영어
- 스타
- 503
- 포크
- 65
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/foxminchan/BookWorm --skill csharp-tunit명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | csharp-tunit |
| description | Get best practices for TUnit unit testing, including data-driven tests |
Your goal is to help me write effective unit tests with TUnit, covering both standard and data-driven testing approaches.
[ProjectName].[TestType] (e.g., MyApp.UnitTests)CalculatorTests for Calculator)dotnet test for running tests[Test] attribute for test methods (not [Fact] like xUnit)Given[Condition]_When[Action]_Then[ExpectedResult] for clarity[Before(Test)] for setup and [After(Test)] for teardown[Before(Class)] and [After(Class)] for shared context between tests in a class[Before(Assembly)] and [After(Assembly)] for shared context across test classes[Before(TestSession)] and [After(TestSession)]actual.ShouldBe(expected))[DependsOn] attribute if needed)[Arguments] attribute for inline test data (equivalent to xUnit's [InlineData])[MethodData] for method-based test data (equivalent to xUnit's [MemberData])[ClassData] for class-based test dataITestDataSource[Arguments] attributes can be applied to the same test methodactual.ShouldBe(expected) for value equalityactual.ShouldBeSameAs(expected) for reference equalityactual.ShouldBeTrue() or actual.ShouldBeFalse() for boolean conditionsactual.ShouldBeNull() or actual.ShouldNotBeNull() for null checksactual.ShouldContain(item) or actual.ShouldNotContain(item) for collectionsactual.ShouldContain("substring") for string containmentactual.ShouldMatch(pattern) for regex pattern matchingactual.ShouldBeGreaterThan(value), actual.ShouldBeLessThan(value) for comparisonsactual.ShouldBeOfType<T>() for type assertionsactual.ShouldBeEmpty() or actual.ShouldNotBeEmpty() for collections and stringsShould.Throw<TException>(() => action) for sync exception testingShould.Throw<TException>(async () => await asyncAction) for async exception testingShould.NotThrow(() => action) to verify no exception is thrownawait needed except for async exception testing)[Repeat(n)] to repeat tests multiple times[Retry(n)] for automatic retry on failure[ParallelLimit<T>] to control parallel execution limits[Skip("reason")] to skip tests conditionally[DependsOn(nameof(OtherTest))] to create test dependencies[Timeout(milliseconds)] to set test timeouts[Category("CategoryName")] for test categorization[DisplayName("Custom Test Name")] for custom test namesTestContext for test diagnostics and information[WindowsOnly] for platform-specific tests[NotInParallel] to disable parallel execution for specific tests[ParallelLimit<T>] with custom limit classes to control concurrency[Repeat(n)] with [ParallelLimit<T>] for load testing scenarios[Fact] with [Test][Theory] with [Test] and use [Arguments] for data[InlineData] with [Arguments][MemberData] with [MethodData]Assert.Equal with actual.ShouldBe(expected)Assert.True with condition.ShouldBeTrue()Assert.Throws<T> with Should.Throw<T>(() => action)[Before(Test)]/[After(Test)]IClassFixture<T> with [Before(Class)]/[After(Class)]Why TUnit over xUnit?
TUnit offers a modern, fast, and flexible testing experience with advanced features not present in xUnit, such as asynchronous assertions, more refined lifecycle hooks, and improved data-driven testing capabilities. TUnit's fluent assertions provide clearer and more expressive test validation, making it especially suitable for complex .NET projects.
SOC 직업 분류 기준