Hiện tại tôi đang bắt đầu giới thiệu khái niệm về các đối tượng Mock vào Bài kiểm tra Đơn vị của tôi. Đặc biệt tôi đang sử dụng khung công tác Moq. Tuy nhiên, một trong những điều tôi đã nhận thấy là đột nhiên các lớp tôi đang thử nghiệm bằng cách sử dụng khung này đang hiển thị mức độ bao phủ mã là 0%.Làm cách nào tôi có thể sử dụng Đối tượng Mock trong các thử nghiệm đơn vị của mình và vẫn sử dụng Phạm vi mã?
Bây giờ tôi hiểu rằng vì tôi chỉ đang chế nhạo lớp, nên nó không tự chạy lớp thực tế .... nhưng làm cách nào để viết các bài kiểm tra này và có Mã trả về kết quả chính xác? Tôi có phải viết một bộ kiểm tra sử dụng Mocks và một bộ để khởi tạo lớp trực tiếp không.
Có lẽ tôi đang làm điều gì đó sai trái mà không nhận ra nó?
Dưới đây là một ví dụ về tôi cố gắng Unit Test một lớp được gọi là "MyClass":
using Moq;
using NUnitFramework;
namespace MyNameSpace
{
[TestFixture]
public class MyClassTests
{
[Test]
public void TestGetSomeString()
{
const string EXPECTED_STRING = "Some String!";
Mock<MyClass> myMock = new Mock<MyClass>();
myMock.Expect(m => m.GetSomeString()).Returns(EXPECTED_STRING);
string someString = myMock.Object.GetSomeString();
Assert.AreEqual(EXPECTED_STRING, someString);
myMock.VerifyAll();
}
}
public class MyClass
{
public virtual string GetSomeString()
{
return "Hello World!";
}
}
}
Có ai biết những gì tôi nên làm khác đi?
Thiếu khung trong ví dụ GetSomeString của bạn sau thông số. –