Tôi nhận được ngoại lệMOQ 4.0: Các loại initializer cho 'Moq.Mock`1' ném một ngoại lệ
Loại initializer cho 'Moq.Mock`1' ném một ngoại lệ.
sử dụng Moq 4.0 Tôi đã kiểm tra xung quanh trên một vài diễn đàn và họ sử dụng phiên bản Moq-NoCastle. Tôi đã thử cả hai điều này và phiên bản trong thư mục Moq. Cả hai đều có cùng kết quả.
Tôi đã có giải pháp với 2 dự án, một cho giao diện của tôi, một cho thử nghiệm của tôi. Dự án chính của tôi có 2 file:
IMyInterface.cs:
using System;
namespace Prototype
{
public interface IMyInterface
{
int Value { get; set; }
void ProcessValue();
int GetValue();
}
}
tập tin program.cs của tôi có chỉ là mã mặc định đó là tạo ra với dự án.
dự án thử nghiệm của tôi có một tập tin duy nhất cho bài kiểm tra giả của tôi - TestProgram.cs
using System;
using NUnit.Framework;
using Moq;
namespace Prototype.UnitTests
{
[TestFixture]
public class TestProgram
{
Mock<IMyInterface> mock;
[TestFixtureSetUp]
void TestSetup()
{
mock = new Mock<IMyInterface>();
mock.Setup(x => x.GetValue()).Returns(2);
}
[Test]
public void RunTest()
{
IMyInterface obj = mock.Object; /* This line fails */
int val = obj.GetValue();
Assert.True(val == 2);
}
}
}
Theo tài liệu tất cả là tốt và thích hợp, và biên dịch độc đáo. Vấn đề xảy ra khi tôi thử chạy thử nghiệm. Đường dẫn đến dòng được đánh dấu ở trên và bị treo với ngoại lệ:
Trình khởi tạo kiểu cho 'Moq.Mock`1' đã ném một ngoại lệ.
Tôi không thể thấy điều gì xảy ra ở đây, bất kỳ ai cũng có thể làm sáng tỏ điều đó?
Cảm ơn. Có vẻ như người truy cập 'công khai' cần được thiết lập trên thiết lập. Những gì tôi không thể tìm ra là khi tôi sử dụng trình gỡ rối để gỡ lỗi kiểm tra, nó thực sự chạy qua phương thức đó. Vì vậy, giả định của tôi là nó không cần phải được công khai. – BenAlabaster
Bạn được chào đón.Có vẻ như NUnit đang cư xử kỳ lạ, và không đưa ra phản hồi tốt. –