2015-05-13 69 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进行验收测试,因此两者不完全不兼容。抱歉。 –

回答

相关问题