Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Answer: Use the [Category("CategoryName")] attribute to group tests, allowing filtering by category during test runs. [Test, Category("Integration")] public void IntegrationTest() { } What interviewers expect A clear def…
Answer: [Test] marks a standard test method without parameters. [TestCase] provides inline parameter values to run the test multiple times with different inputs. What interviewers expect A clear definition tied to Testin…
Answer: Use [Ignore("Reason")] to skip tests unconditionally, or [Category] combined with test runner filters. For conditional ignoring, you can use Assume statements or custom logic inside tests. What interviewers expec…
Answer: Download and use nunit3-console.exe from NUnit site: nunit3-console.exe YourTestAssembly.dll It runs all tests in the assembly and outputs results. What interviewers expect A clear definition tied to Testing in U…
Answer: Yes, NUnit integrates seamlessly with CI/CD tools like Azure DevOps, Jenkins, GitHub ctions, and others using command-line runners or plugins, allowing automated test execution during builds and deployments. MSTe…
MSTest is Microsoft's official unit testing framework for .NET. It’s tightly integrated with Visual Studio and is a good choice for teams using Microsoft tooling and wanting a straightforward, supported testing solution…
Answer: [TestClass] public class CalculatorTests { [TestMethod] public void Add_ReturnsSum() { var calculator = new Calculator(); var result = calculator.Add(2, 3); ssert.AreEqual(5, result); } } What interviewers expect…
MSTest is Microsoft's official framework; NUnit and xUnit are community-driven. MSTest uses [TestClass] and [TestMethod] attributes; xUnit uses [Fact], NUnit uses [Test]. MSTest has less flexibility in data-driven tests…
ttributes? [TestInitialize] runs code before each test method to set up prerequisites. [TestCleanup] runs after each test method to clean up resources. [TestInitialize] public void Setup() { /* setup code */ } [TestClean…
[TestInitialize] runs code before each test method to set up prerequisites. [TestCleanup] runs after each test method to clean up resources. [TestInitialize] public void Setup() { /* setup code */ } [TestCleanup] public…
Answer: [TestMethod] [ExpectedException(typeof(DivideByZeroException))] public void Divide_ByZero_ThrowsException() { var calculator = new Calculator(); calculator.Divide(10, 0); } What interviewers expect A clear defini…
Yes, MSTest supports data-driven tests using [DataTestMethod] and [DataRow] ttributes: [DataTestMethod] [DataRow(2, 3, 5)] [DataRow(10, 20, 30)] public void Add_ReturnsSum(int a, int b, int expected) { var calculator = n…
Answer: Use the [TestCategory("CategoryName")] attribute to group tests for filtering. [TestMethod] [TestCategory("Integration")] public void IntegrationTest() { } What interviewers expect A clear definition tied to Test…
Answer: Use the [Ignore("Reason")] attribute on the test method or class. [Ignore("Test is temporarily disabled")] [TestMethod] public void SkippedTest() { } What interviewers expect A clear definition tied to Testing in…
Answer: Use dotnet test CLI for .NET Core MSTest projects: dotnet test YourTestProject.csproj In Azure DevOps, use the Visual Studio Test task or the DotNetCoreCLI task to run tests during builds and releases. What inter…
MSTest itself does not provide mocking capabilities. Use mocking libraries like Moq or NSubstitute alongside MSTest to mock dependencies. Example with Moq: var mockService = new Mock<IService>(); mockService.Setup(…
Mocking is creating fake objects that simulate the behavior of real dependencies. It’s important because it isolates the unit under test, avoids reliance on external systems, improves test speed, and allows testing speci…
Answer: Moq is a popular, open-source mocking library for .NET that enables developers to create mock objects, set expectations, and verify interactions in unit tests, helping isolate dependencies easily. What interviewe…
Answer: var mockService = new Mock&lt;IService&gt;(); var service = mockService.Object; // use this in your test What interviewers expect A clear definition tied to Testing in Unit Testing projects Trade-offs (pe…
Answer: mockService.Setup(s =&gt; s.GetData()).Returns("Mocked Data"); This configures the mock to return "Mocked Data" when GetData() is called. What interviewers expect A clear definition tied to Testing in Unit Te…
Answer: mockService.Verify(s =&gt; s.Save(), Times.Once); This asserts that Save() was called exactly once during the test. What interviewers expect A clear definition tied to Testing in Unit Testing projects Trade-o…
Answer: mockService.SetupGet(s =&gt; s.Name).Returns("MockName"); This sets up a mocked property getter to return a specific value. What interviewers expect A clear definition tied to Testing in Unit Testing projects…
Answer: mockService.Setup(s =&gt; s.GetData(It.IsAny&lt;int&gt;())).Returns("Data"); You can specify argument matchers like It.IsAny&lt;T&gt;() to mock methods with parameters. What interviewers expec…
Answer: mockService.Setup(s =&gt; s.GetDataAsync()).ReturnsAsync("Async Data"); Moq supports ReturnsAsync to mock async methods returning Task&lt;T&gt;. What interviewers expect A clear definition tied to Tes…
Cannot mock non-virtual or sealed methods/classes without special tooling. Over-mocking can make tests fragile and hard to maintain. Complex mocks can hide design issues in the code. Mocks don’t guarantee real-world inte…
Unit Testing C# Programming Tutorial · Testing
Answer: Use the [Category("CategoryName")] attribute to group tests, allowing filtering by category during test runs. [Test, Category("Integration")] public void IntegrationTest() { }
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: [Test] marks a standard test method without parameters. [TestCase] provides inline parameter values to run the test multiple times with different inputs.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: Use [Ignore("Reason")] to skip tests unconditionally, or [Category] combined with test runner filters. For conditional ignoring, you can use Assume statements or custom logic inside tests.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: Download and use nunit3-console.exe from NUnit site: nunit3-console.exe YourTestAssembly.dll It runs all tests in the assembly and outputs results.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: Yes, NUnit integrates seamlessly with CI/CD tools like Azure DevOps, Jenkins, GitHub ctions, and others using command-line runners or plugins, allowing automated test execution during builds and deployments. MSTest Framework
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
MSTest is Microsoft's official unit testing framework for .NET. It’s tightly integrated with
Visual Studio and is a good choice for teams using Microsoft tooling and wanting a
straightforward, supported testing solution without external dependencies.
Unit Testing C# Programming Tutorial · Testing
Answer: [TestClass] public class CalculatorTests { [TestMethod] public void Add_ReturnsSum() { var calculator = new Calculator(); var result = calculator.Add(2, 3); ssert.AreEqual(5, result); } }
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
NUnit uses [Test].
xUnit’s [Theory].
Unit Testing C# Programming Tutorial · Testing
ttributes?
[TestInitialize]
public void Setup() { /* setup code */ }
[TestCleanup]
public void Cleanup() { /* cleanup code */ }Unit Testing C# Programming Tutorial · Testing
[TestInitialize]
public void Setup() { /* setup code */ }
[TestCleanup]
public void Cleanup() { /* cleanup code */ }
Unit Testing C# Programming Tutorial · Testing
Answer: [TestMethod] [ExpectedException(typeof(DivideByZeroException))] public void Divide_ByZero_ThrowsException() { var calculator = new Calculator(); calculator.Divide(10, 0); }
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Yes, MSTest supports data-driven tests using [DataTestMethod] and [DataRow]
ttributes:
[DataTestMethod]
[DataRow(2, 3, 5)]
[DataRow(10, 20, 30)]
public void Add_ReturnsSum(int a, int b, int expected)
{
var calculator = new Calculator();
var result = calculator.Add(a, b);
ssert.AreEqual(expected, result);
}Unit Testing C# Programming Tutorial · Testing
Answer: Use the [TestCategory("CategoryName")] attribute to group tests for filtering. [TestMethod] [TestCategory("Integration")] public void IntegrationTest() { }
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: Use the [Ignore("Reason")] attribute on the test method or class. [Ignore("Test is temporarily disabled")] [TestMethod] public void SkippedTest() { }
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: Use dotnet test CLI for .NET Core MSTest projects: dotnet test YourTestProject.csproj In Azure DevOps, use the Visual Studio Test task or the DotNetCoreCLI task to run tests during builds and releases.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
MSTest itself does not provide mocking capabilities. Use mocking libraries like Moq or
NSubstitute alongside MSTest to mock dependencies.
Example with Moq:
var mockService = new Mock<IService>();
mockService.Setup(s => s.GetData()).Returns("Test Data");
Moq Framework (Mocking)
Unit Testing C# Programming Tutorial · Testing
Mocking is creating fake objects that simulate the behavior of real dependencies. It’s
important because it isolates the unit under test, avoids reliance on external systems,
improves test speed, and allows testing specific scenarios and edge cases.
Unit Testing C# Programming Tutorial · Testing
Answer: Moq is a popular, open-source mocking library for .NET that enables developers to create mock objects, set expectations, and verify interactions in unit tests, helping isolate dependencies easily.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: var mockService = new Mock<IService>(); var service = mockService.Object; // use this in your test
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: mockService.Setup(s => s.GetData()).Returns("Mocked Data"); This configures the mock to return "Mocked Data" when GetData() is called.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: mockService.Verify(s => s.Save(), Times.Once); This asserts that Save() was called exactly once during the test.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: mockService.SetupGet(s => s.Name).Returns("MockName"); This sets up a mocked property getter to return a specific value.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: mockService.Setup(s => s.GetData(It.IsAny<int>())).Returns("Data"); You can specify argument matchers like It.IsAny<T>() to mock methods with parameters.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing
Answer: mockService.Setup(s => s.GetDataAsync()).ReturnsAsync("Async Data"); Moq supports ReturnsAsync to mock async methods returning Task<T>.
In a production Unit Testing application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Unit Testing C# Programming Tutorial · Testing