【问题标题】:Unit Test - method tests failed (labeltext.visible)单元测试 - 方法测试失败(labeltext.visible)
【发布时间】:2021-12-15 23:00:54
【问题描述】:

我的问题是我的单元测试总是失败,但根本没有意义。我将 label.visible 值设置为 true 并查询它们是否为 true。这个怎么可能?我在控制台中写入值,它们返回false。但该方法在程序本身中有效。

    // GETTER/SETTER
    internal void setlabeltest1Visible(bool xBool) { test1.Visible = xBool; }
    internal bool getlabelTest1Visible { get { return test1.Visible; } }
    internal void setlabeltest2Visible(bool xBool) { test2.Visible = xBool; }
    internal bool getlabelTest2Visible { get { return test2.Visible; } }


    // METHOD TO TEST
    internal void switchLabelVisibility(bool xFlag)
    {
        test1.Visible = xFlag;
        test2.Visible = xFlag;
    }


// UNIT TEST
   [TestMethod]
    public void switchLabelVisibility_Test()
    {
        //Arrange 
        var ExportTests = new Export();

        //Act //1. Fall - set visible values true
        ExportTests.switchLabelVisibility(true);

        //Assert
        Assert.IsTrue(
            ExportTests.getlabelTest1Visible &&
            ExportTests.getlabelTest2Visible
            ); // FAILS (values false)

【问题讨论】:

  • 这些标签在哪里?一个winforms表格?表格是否可见?如果没有,无论Visible = true如何,标签也将不可见。
  • 我不确定,它只是一个用于测试的虚拟对象。我会试试这个,谢谢。
  • 是的,这就是问题所在。现在它可以正常工作了!非常感谢:)

标签: c# unit-testing methods label assert


【解决方案1】:

感谢@Steeeve,效果很好。 :)

[TestMethod]
public void switchLabelVisibility_Test()
{
    //Arrange
    var ExportTests = new Export();
    ExportTests.Visible = true; // this works!

    //Act //1. Fall - Setze switchLabelVisibility true
    ExportTests.switchLabelVisibility(true);

    //Assert
    Assert.IsTrue(
    ExportTests.getlabelTest1Visible &&
    ExportTests.getlabelTest2Visible);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多