2015-05-13 71 views
3

我正在使用Mspec和FakeItEasy,並且不斷得到不確定的測試結果。我試着評論我的假設置代碼,甚至實際調用了待測試的方法。我也無法調試測試。我也試過這樣簡單的測試:爲什麼這個簡單的MSpec測試返回不確定?

private Then it_should_be_true =() => true.ShouldBeTrue(); 

什麼是不確定測試的原因?

enter image description here

[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(); 
} 
+0

我不是Machine.Specifications專家,所以我會先從另一個方向着手。這是用什麼方式使用FakeItEasy?如果您從項目中刪除FakeItEasy,什麼都不會改變?您是否能夠在過去運行Machine.Specifications測試? –

+0

是的,我在其他已成功運行的庫中有其他Mspec測試。剛剛提到FakeItEasy的完整性。只是想知道是否有導致這些測試結果的常見情況? – Adam

+0

嗯,不幸的是,我沒有光。 FakeItEasy實際上使用Machine.Specifications進行驗收測試,因此兩者不完全不兼容。抱歉。 –

回答

相關問題