3
我正在使用Mspec和FakeItEasy,并且不断得到不确定的测试结果。我试着评论我的假设置代码,甚至实际调用了待测试的方法。我也无法调试测试。我也试过这样简单的测试:为什么这个简单的MSpec测试返回不确定?
private Then it_should_be_true =() => true.ShouldBeTrue();
什么是不确定测试的原因?
[Tags("IntegrationTest")]
[Subject(typeof(AuthManager))]
public class When_a_login_is_performed_using_valid_credentials
{
protected static string MemberUsername;
protected static string MemberPassword;
protected static SignInResponse Response;
private Given context =() =>
{
MemberUsername = "User1";
MemberPassword = "Pass1";
};
private When test =() =>
{
Response = AuthManager.Current.SignIn(MemberUsername, MemberPassword);
};
private Then It_should_return_a_successful_response =() => Response.Success.ShouldBeTrue();
private Then It_should_not_contain_any_reported_errors =() => Response.Errors.ShouldBeEmpty();
private Then It_should_have_an_Id_populated =() => Response.Id.ShouldNotBeEmpty();
}
我包裹它成为然后,使用下面的代码来匹配BDD语法。它一直在过去工作。
using Machine.Specifications;
namespace Testing.MachineSpecifications
{
/// <summary>
/// Given
/// </summary>
[SetupDelegate]
public delegate void Given();
/// <summary>
/// When
/// </summary>
[ActDelegate]
public delegate void When();
/// <summary>
/// Then
/// </summary>
[AssertDelegate]
public delegate void Then();
}
我不是Machine.Specifications专家,所以我会先从另一个方向着手。这是用什么方式使用FakeItEasy?如果您从项目中删除FakeItEasy,什么都不会改变?您是否能够在过去运行Machine.Specifications测试? –
是的,我在其他已成功运行的库中有其他Mspec测试。刚刚提到FakeItEasy的完整性。只是想知道是否有导致这些测试结果的常见情况? – Adam
嗯,不幸的是,我没有光。 FakeItEasy实际上使用Machine.Specifications进行验收测试,因此两者不完全不兼容。抱歉。 –