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進行驗收測試,因此兩者不完全不兼容。抱歉。 –